1.register寄存器变量,比内存中变量读取速度更快。它只是建议性的不是强制的,当今优化的编译器可以自动把这类型的变量放进寄存器
2.extern用于声明全局变量,如果在全局变量定义前要用到全局变量,则要用extern声明。这个声明是提前引用声明。
3.静态函数(局部函数),函数的作用域仅限于本文件,不同文件可以有同名函数。外部函数可以被多个文件共用。
4.数组可以省略第一维的大小,但是不能省略第二维的大小如a[][3]正确,但是a[3][]不正确。
5.在数组名作为函数参数时,只要跟形参列数相同,实参的行数可以跟形参的不同。如,形参int a[3][10]; 实参可以是int a[4][10],传递的是数组的首地址,不检查第一维的大小。
6.char c[11]={'I',' ','a','m',' ','h','a','p','p','y'};结果正确;char c[ ]={'I',' ','a','m',' ','h','a','p','p','y'}出现乱码,因为第一个字符数组长度是11,系统会自动在最后一个位置置为空‘\0’,而第二个是自动的,数组的长度为10。
7.strlen得到的长度不包含‘\0’.
8.可以对字符的某个字符修改如string str=“nousoft”;str[1]='e';结果就是neusoft.
9.两个指针变量可以相减,如果指向同一数组的两个指针变量相减,得到的数值是他们所指对象相差的元素个数。同理,指向同一数组的两个指针变量可以比较大小。
10.在声明引用变量时,必须同时对它进行初始化。且该引用类型的变量不能再作为其他变量的引用名。
11.不能对共用体变量名赋值;不能企图引用变量名来得到一个值;不能在定义共用体变量时对它初始化;不能用共用体变量名作为函数参数。
12.一个整数不能直接赋值给枚举变量。
13.如果在类体外定义inline函数,则必须将类定义和成员函数的定义都放在同一个头文件中(或者写在同一个源文件中),否则编译时无法进行置换