中间被各种笔试面试打断,接着更。
1.const
表示只读,声明一个常数,表示这个参数的应用目的,使用const可以使代码更加紧凑。合理的使用const 可以保护那些不希望被改变的字符,减少Bug。
2.volatile
表示这个量可能会发生变化,编译器读到这个量的时候要小心读取,而不能直接利用缓存,这个变量可能会被意想不到的改变。例子:
并行设备的硬件寄存器;中断服务子程序中会访问的非自动变量;多线程应用中被几个任务同时共享的变量。
特殊例子:一个只读寄存器的值,就是const 又是volatile,因为它不可以被改变,却又要变化。(真是纠结的矛盾体……)
3.static
函数体内的static 变量作用范围为该函数体,该变量的内存只被分配一次,因此其值在下次调用时仍保持上次的值;
在模块内的static 全局变量可以被模块内的所有函数访问,但不能被模块外的其他函数访问。
在模块内的static 函数只能被这一模块内的其他函数调用,这个函数的使用范围被限制在声明它的模块内。
类中的static 成员变量属于整个类所拥有,对类的所有对象只有一份拷贝。
在类中的static 成员函数属于整个类所拥有,这个函数不接收this指针,因而只能方位类中的static 成员变量。