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关键词
标签:const,变量,int,C++,学习,关键字,地址,寄存器,data From: https://www.cnblogs.com/canyooo/p/17450434.html