[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关键词

给已有的类型起别名。

posted @ 2023-06-01 22:25  Canyooo  阅读(28)  评论(0)    收藏  举报