1.const
const表示是不变的意思,用于修饰变量,会告诉编译器他是一个常量。
例如:int const a =10;如果此时在对a进行赋值,则编译的时候系统会报错。
那么如果你定义了const a,a真的不能更改吗?
答案是可以的,const机制是通过编译器检查实现的,虽然放在了文本常量区。程序在真正运行时,并不关心是不是const,只要编译器不报错就可以。
我们可以这样更改:
int main()
{
int const a = 5;
int *p = (int *)&a;
*p = 55;
}
此时在读值a=55了
2.stastic
分为stastic局部变量、stastic函数、stastic全局变量
stastic局部变量:,在局部变量的数据类型前加上关键字“static”则可以把局部变量变成静态变量.局部变量有着局部变量的作用范围,全局变量的声明周期。
stastic函数:局部函数是指这个函数只能被当前所在的源文件使用,工程的其他源文件无法对这个函数进行调用.,static函数在内存中只有一份,普通函数在每个被调用中维持一份拷贝
stastic全局变量:静态全局变量则限制了其作用域, 即只在定义该变量的源文件内有效, 在同一源程序的其它源文件中不能使用它。由于静态全局变量的作用域局限于一个源文件内