C++ : 变量

                               变量

1、左值与右值

左值(lvalue发音:ell-value):左值可以出现在赋值语句的左边或者右边。

右值(rvalue发音:are-value):右值只能出现在赋值语句的右边,不能出现在赋值语句的左边。

 

变量时左值,因此可以出现在赋值语句的左边。数字字面值是右值,因此不能被赋值。

C++程序员一般称变量为“变量”或者“对象”(object)。

2、对象:在内存当中具有类型的区域。

3、变量名:变量的标识符,可以由字母,数字和下划线组成,但必须以字母或下划线开头,并且区分大小写字母。如:

int somename, someName, SomeName, SOMENAME;

虽然变量名没有长度限制,但是不应该太长,影响阅读。

4、一些关键字和操作符的替代名不能作为标识符!

5、变量名的命名习惯:

1)变量名一般用小写字母。如:index

2)标识符应使用能帮助记忆的名字,能够提示在程序中的用法的名字,如:on_loansalary

3)包含多个词的标识符书写时在每一个词之间添加一个下划线,或者每个内嵌的词的第一个字母都大写。如student_loan或者studentLoan

4)命名习惯最重要是保持一致。

6、定义对象: 以类型说明符开始,后面紧跟着以逗号分开的一个或者多个说明符列表。分号结束定义。

类型决定了分配给变量的储存空间的大小和可以在其上执行的操作,同时,多个变量可以定义在同一条语句中。如:double salarywage

7、初始化: 变量定义指定了变量的类型和标识符,也可以为对象提供初始值,定义时指定了初始值的对象称为已初始化。

C++支持两种初始化变量的形式: 复制初始化和直接初始化

int ival1024); 直接初始化

int ival = 1024; 复制初始化

注意:初始化不是赋值!初始化指创建变量并给它赋初始值,而赋值测试擦除对象的当前值并用新值代替。

8、初始化内置类型的对象只有一种方法:提供一个值,并复制到新的对象中。此时的复制初始化和直接初始化没差别。

对于类类型来说,有些初始化仅能用直接初始化完成:

string为例,1) 作为字符串字面值的副本:

Std::string titleA = "C++ Primer, 4th Ed.";

Std::string titleB ("C++ Primer, 4th Ed");

2) 通过一个计数器和一个字符初始化string对象。

如:std::string all_nines(10, '9'); 等价于  all_nines = "9999999999" ;

9、初始化多个变量:当一个定义中定义了两个以上变量的时候,每个变量都可能有自己的初始化。(已初始化变量和未初始化变量可以在同一个定义中定义)

如: double salary = 9999.99 

 Wagesalary +0.01); (两种形式的初始化文法混用)

 int  interval

Month = 8, day =7, year = 1999;(初始化和未初始化在同一定义)

 

注意:

1、内置类型变量的初始化: 未初始化的变量作用于任何其他用途都是没有定义的,除了用作赋值操作符的左操作数。

2、建议每个内置类型的对象都要初始化,这样做不总是必须的,但是最容易和安全的。 如果使用未初始化的变量会引起程序崩溃或者错误的计算结果。

3、类类型变量的初始化: 注意它的两种初始化方法。 另外,如果定义某个类的变量时没有提供初始化,它会通过一个默认构造函数来实现定义。

 

10、声明和定义:

定义: 用于为变量分配存储空间,还可以为变量指定初始值。一个程序中,变量有且只有一个定义。

声明:用于向程序表明变量的类型和名字。(在定义时,其实也有声明变量的类型和名字)  可以通过extern 关键字声明变量名而不定义它。Extern 声明不是定义,也不分配储存空间。 程序中变量可以声明多次,但是定义只有一次。

注意:

如果声明有初始化式,那么就被当做是定义,即使有extern。如:

extern double pi = 3.1415 ; (定义)

当已初始化的extern声明被当作定义后,该变量任何随后定义都是错误的。如: extern double pi = 3 .1415 ; (定义)

     extern double pi ;   (声明,不出错)

   double  pi ; (重定义,出错)

   extern double pi =3.1415 ; (重定义,出错)

-------------------------------------------------------------------------------------------------------------------------------------------------------------

在变量这一章节中,有许多细节需要注意,就像上文中的一些红色字体。变量的命名规范也是编程规范的一部分,所以需要特别注意。第二是,对于类类型的初始化还是有一点没弄得很明白,就是两种初始化方法的使用情况,也许需要在学习类之后再重新理解一下今天的内容!同时,还学习了直接初始化和复制初始化。第三点是学习到了声明和定义的区别,声明没有分配储存空间,声明只是告诉程序变量在这里出现。定义为变量分配了存储空间,同时也是给变量赋上初始值。其实个人觉得定义时也包括了声明!

(努力学习第二天!)

posted @ 2012-07-10 00:20  欢_全力以赴  阅读(267)  评论(0编辑  收藏  举报