C++题目(论述类)
0、面向对象
三大特性:封装性、继承性、多态性
1、static
①只进行一次初始化,而且保存在静态存储区,是在程序运行时就进行初始化了;
②当我们同时编译多个源文件(.c文件)时,所有未加static前缀的全局变量和函数都具有全局可见性,如果加了static,就会对其它源文件隐藏,利用这个特性,可以在不同的源文件中定义同名的变量、函数;
③默认初始化值为0,因为静态数据区,内存中所有字节默认值都是0x00,利用这个特性,把字符数组当成字符串用的时候,定义字符数组为静态变量就可以了确保最后有‘\0’。
2、const
由于没有 const *的运算,若出现 const * 的形式,则const实际上是修饰前面的。
const int a; //a是常整型
int const a; //a是常整型
const int *a; //a是指向 常整型数的 指针
int * const a; //a是指向 整型数的 常指针
int const * a const; //a是指向 常整型数的 常指针
3、volatile
①volatile变量是随时可能发生变化的,与其有关的运算,不要进行编译优化,即编译器不会去假设这个变量的值了;
②每次使用的时候,都必须小心地从内存里重新读取这个值,而不是使用保存在寄存器里的备份。
eg.并行设备的硬件寄存器