1.const的使用
定义 | 赋值 | 判断 | 定义 | 判断 |
const int x = 1 | x = 2 | 错误 | ||
const int * x = 1;int c = 20; | *x = 20 | 错误 | x = &c | 正确 |
int * const x = 3; int c = 20; | *x = &c | 正确 | x = 2; | 错误 |
const int * const x = 3; int c = 20; | *x = &c | 错误 | x = 2; | 错误 |
const紧跟的类型不能修改;int和const的位置可以互换;
2.c++中const的作用,说出三个;
A:定义常量;编译器可对其进行静态类型安全检测;
B:修饰函数入参;
void fun(A s) //函数内需要产生临时对象进行构造、复制、析构;
void fun(A const s) //函数内不需要产生临时对象,节约时间;
C:修饰函数的返回值;
const char * GetChar(void){}
char *ch = GetChar(); //error
const char * ch = GetChar();//correct
D:修饰类的成员函数;
int GetChar(void) const;
3. const和#defined的区别
类型 | 生命周期 | 存在 | |
const | 有 | 全过程 | 数据段 |
#defined | 无(只是内容的替换) | 编译过程 | 代码段 |
4. static的作用
A:在函数体:静态全局;
B:在模块内(在函数体外):静态局部;
C:静态函数:
5.static全局变量和普通的全局变量
A:static全局变量与普通全局变量:前者只初始化一次,防止在其他文件中引用;
B:static局部变量与普通局部变量:前者只初始化一次,防止在其他文件中引用;
C:static函数与普通函数的区别:前者在内存中只有一份,普通函数在被调用的时候维持一分复制;