static
1.修饰局部变量,改变其生命周期,不改变其作用域,改变后的生命周期直至文件销毁
2.修饰全局变量,改变其连接属性,使其只能在本文件中使用,即使使用extern外部声明也不行
3.修饰函数,改变其链接属性使其不可见
看一个例子
const
const 常量必须初始化
const 修饰成员变量
const int i = 0;表明i被声明为常量,不可修改
const 修饰指针变量
const位于 * 的左侧时,表示指针所指数据是常量 ,不能修改其所指的数据,但是指针本身是变量,可以指向其他的内存单元
const int * p = &a;
const位于 * 的右侧时,表示指针变量本身是常量,不可修改其地址,但其所指的数据是常量可以通过引用修改
int * const p = &a;
const int * const p = &a; 表示两者均不可修改
const 修饰函数参数
表示传递过来的函数参数在函数中不可修改
void mean_const( const int a){
a = 0; //编译错误 ,a 的值不可修改
}