[C++学习]关键字
const关键字
const关键字表示该数据类型的值只读,不可赋值,也就意味着它必须初始化。
const若是修饰常量,则只读变量的值会放在“符号常量表”中,而不会立即开辟空间,当数据取地址时则会开辟空间。
const int data = 100; int *p = (int *)&data; //开辟空间,p指向该空间。 *p = 2000; cout << *p << endl; //2000,值变了。 cout << data << endl; //100,符号常量表的值。
如果以变量形式初始化,则只读变量会立即开辟空间。(没有符号常量表)
int a = 100; const int data = a; int *p = (int *)&data; //赋值data地址 *p = 2000; //修改data地址内的值 cout << *p << endl; //2000 cout << data << endl; //2000
如果以自定义类型变量,则立即开辟空间。(没有符号常量表)
register修饰寄存器变量
若是某变量高频使用时,系统会自动将该变量加入寄存器中。(被动)
加上register关键词可将数据放入寄存器中,会提高访问效率。(主动) //尽量不要对寄存器变量取地址,取地址是对内存操作,最好不要对寄存器取地址。
register变量只是尽量放入寄存器中,并不保证成功。
volatile关键词
需要实时读取最新的数据时添加volatile关键词。表示强制访问内存。(若是系统将该data放入寄存器而导致数据非最新,可能会引起数据误差)
typedef关键词
给已有的类型起别名。