声明变量时可能用到的关键词
在我们变成的过程中,往往需要声明一些变量,在声明变量时,我们往往总需要声明清楚这个变量是什么数据类型,此外,我们偶尔在这些变量前,还要加一些关键词,这些关键词也许不会影响我们程序的编写,但是使用这些关键词能使我们的代码更清晰。
auto
1.用来定义自动申请内存、自动释放内存的变量(局部变量、块语句)
2.在声明变量时不加auto就代表加了,用法与unsigned一致
**** 注意:全局变量前不能使用****
const
1.const是对变量提供的一种保护。
2.变量一旦初始化后,就不能在显示它的值。
3.const修饰被初始化过的全局变量才是真正的常量,一旦修改就会出现段错误,因为编译器把这种全局变量的存储位置划分成了text。
4.但是我们可以通过指针修改const变量的存储位置改变const变量的值
static
static的作用有3种:
1.限制全局变量、函数的作用域
2.改变局部变量和块变量的存储位置
3.延长变量的生命周期
register
申请变量的存储位置为寄存器,由于寄存器有限,不一定成功
注意:寄存器地址不能获取地址
volatile
volatile修饰的变量一般是不稳定的,易变的。多用于线程间共享的变量,或者裸机硬件编程。
如果一个变量值没有被显示的修改,编译器不会再次从内存再次读取它的数值,而是直接使用上次的读取结果。(这是一种优化)
volatile的功能是告诉编译器变量的值可能变化,不要优化它的取值过程,每次应道变量时都需要去内存中获取它的值。
在这里插入图片描述
extern
声明变量,多文件共享全局变量时使用,谁使用谁声明