对内存资源存放位置的限定
一 auto
默认情况
如果在{}中,则在栈空间
二 register
int a;
register int a;
//限制变量定义在寄存器的修饰符
//定义一些快速访问的变量
//编译器会尽量的安排cpu的寄存器去存放这个变量,如果寄存器不足时,变量还是放在存储器中
//&无法去由register修饰的变量的地址,因为存放在寄存器中无地址
三 static
修饰三种数据:
1).函数内部的变量
2).函数外部的变量
3).函数的修饰符
四 const
const
//常量的定义
//只读的变量
const int a = 100;
a=200;
//无法修改a的值(指针的某种方式可以修改)
五 volatile
//告知编译器编译方法的关键字,不优化编译,优化编译会不读取外界(外部的用户修改)修改的值
//变量可能不是软件修改,可能是外界修改