变量
1.变量类型
1. 常用的C++算术类型
type | meaning | minimum size |
---|---|---|
bool | boole type | undifine |
char | character type | 8 byte |
int | integer type | 16 byte |
long | long integer | 32 byte |
long long | longer long integer | 64 byte |
float | single precision float | 6 significant number |
double | double precision float | 10 significant number |
2. 类型转换
- 非boole类型的算术值赋给boole类型时,初始值为0则结果为false,初始值不为0时则结果为true。
- boole类型的算术值赋给非boole类型时,false的结果为0,true的结果为1。
- 浮点数类型的算术值赋给整型时,结果向下取整。
- 整型的算术值赋给浮点数类型时,小数部分为0.
- 给无符号类型赋一个超出其表示范围的值时,结果为初始值模无符号类型能表示数值总数取整后的值。
例如,8 byte大小的unsigned char
可以表示
0
至unsigned char
,那么结果是
(−1)mod256=255
unsigned u = 10, u2 = 42;
cout << u2 - u << endl;
cout << u - u2 << endl;
unsigned u = 10, u2 = 42;
cout << u2 - u << endl;
cout << u - u2 << endl;
int i = 10, i2 = 42;
cout << i2 - i << endl;
cout << i - i2 << endl;
cout << i - u << endl;
cout << u - i << endl;
cout << i - u2 << endl;
cout << u2 - i << endl;
只有u-u2
和i-u2
是有unsigned
类型参与的运算但结果为负数,因此需要取
232=4294967296
的模,均为4294967264
。
2. 变量初始化
3. 变量标识符(变量名)
C++对于变量标识符必须由数字、字母和下划线组成。
标识符必须以下划线或者是字母开头,标识符长度无限制,大小写敏感。
命名法则(Camel Case):变量标识符应当反应出变量的实际含义;第一组单词全部小写,以后的每个单词首字母大写。
int salesProfit;//这是一个好的变量名,符合Camel法则
int a,b;//这是一个坏的变量名
4.名字的作用域
5.引用
引用类型引用另外一种类型,通过将声明符写作&d
的形式来定义引用类型,其中d
是声明的新变量名。
int ival=1024;
int &refVal=ival; //refVal是ival的另一个名字
int &refval2; // Error:reference must be initialized.
Note
- 一般在初始化变量的时候,初始值会被拷贝到新建的对象中。
- 然而在定义引用时,程序把引用和它的初始值绑定在一起,而不是把初始值拷贝给引用,一旦初始化完成,引用将和它的初始值一直绑定在一起。
- 因为无法将引用重新绑定到另一个对象。
int ival = 12,uval=10;
int &refVal = ival;
cout << "refVal=" << refVal << '\0' << "ival=" << ival << endl;
//输出 refVal=12 ival=12
refVal = uval;
cout << "refVal=" << refVal << '\0' << "ival=" << ival << endl;
//输出 refVal=10 ival=10
return 0;
可以看出一旦对引用初始化以后,一改全改,对引用的任何操作都看作对于初始值的操作。