类型:赋给无符号类型一个超出他表示范围的值时,结果是初始值对无符号类型表示数值总数取模后的余数。
字符串:字符串字面值的类型实际上是由常量字符构成的数组,例如字符串"A"包含的两个字符:一个是字母A,另一个是空字符,编译器在每个字符串的结尾处添加一个空字符('\0')
声明使名字为程序所知,一个文件如果想使用别处定义的名字则必须包含对那个名字的声明。
定义负责创建与名字关联的实体。
变量声明规定了变量的类型和名字,定义还申请存储空间,也可能会为变量赋一个初始值。
extern int i; //声明i而非定义i int j; //声明并定义j extern int k = 1; //定义
变量的定义必须出现在且只能出现在一个文件中,而其他用到该变量的文件必须对其进行声明,却绝对不能重复定义。
引用本身不是一个对象,所以不能定义引用的引用。
默认状态下const对象仅在文件内有效。
如果想在多个文件之间共享const对象,必须在变量的定义之前添加extern关键字。
顶层const表示指针本身是个常量,而底层const表示指针所指的对象是一个常量。
int i = 0; int *const p1 = &i; //不能改变p1的值,顶层const const int ci = 42; //不能改变ci的值,顶层const const int *p2 = &ci; //允许改变p2的值,底层const const int *const p3 = p2; //右 顶层const,左 底层const const int &r = ci; //用于声明引用的都是底层const
2018年7月12日