变量命名规则
1. 只能使用字母、数字、下划线
2. 区分大小写。mello和Mello不是同一个变量
3. 第一个字符不能是数字
4. 通常约定:两个下划线打头的变量名保留给实现;一个下划线打头的变量名作为全局标识符
C++的数据类型
整形:short /int /long /long long
1. short至少16位;int至少和short一样长;long至少32位;long long至少64位;
2. 头文件<climits>里包含了对整形的限制信息:有INT_MAX /SHRT_MAX /LONG_MAX /LLONG_MAX等符号常量。
sizeof (int)可以返回 int 型变量所占用的字节数。
无符号整形:unsigned short /unsigned int /unsigned long /unsigned long long
数据溢出问题按照钟表来看:过了12溢出,会变成1;同理在1出下溢,会变成12;
char型
char也是一种整形,用来存储所有的基本符号(字母,数字,标点符号)
bool型
非零值为true,零值为flase
浮点型:float /double /long double
通常float为32位,double为64位,long double为96或128位。
自动类型:auto
C++有一种新的类型,auto被定义为初始值相同的类型。
如:auto y=1.2; //y is double and y=1.2
const限定符
编译器不允许再修改const限定符定义的常量,而且需要在声明中就初始化
const int days = 365;//在后面的代码中,days的值不能被更改。
C++运算符
+ - * / %
除法(/)运算分支
如果两个操作数都是整形,结果抛弃小数部分(不是四舍五入)
如果操作数有一个是浮点,则结果为浮点数。
1/2 和 1.0/2结果不同。这种操作叫运算符的重载
求模(%)运算分支
求模(取余数)两个操作数必须是整形,否则编译出错
类型转换和强制类型转换
1. 小转大基本没有什么问题,大转小可能会丢失精度。如double强制转换为int型。
2. 强制类型转换格式:typename (value) //把value强制转换成typename型。
3. static_cast<typename> (value)是C++引入的新的强制转换格式。