Register
1、Register作用:提高程序的运行效率,省去了cpu到内存中抓取数据的时间。
#include<stdio.h>
int main()
{
register int num = 5;
return 0;
}
register:不能修饰全局变量,也不能修饰函数,只能修是局部变量。
volatile :防止编译器将所修饰的变量加载到寄存器中进行优化
volatile int count = 5;
while(count == 5)
{
cout << "hello world" << endl;
}
引用分类:左值引用(只能绑定左值)和右值引用(只能绑定右值)
左值:可以对该值取地址或修改。
右值:不能对该值取地址或修改。
如:
int &l_num = num; //左值
int &&r_num = 5; //右值
左右值的引用的作用:函数的形参、函数的返回值。
左值:替代指针的操作。
临时对象开销的问你题(对象移动)
const
const:修饰一个变量(全局、局部)、修饰函数返回值
作用:将修饰的变量标记为只读变量。(错误理解:const修饰的变量是常量)
注意:const修饰一个变量必须初始化。
const int num =5;
num = 5;
num++;
此时num输出任为5.
但是:
const int num =5;
int *p = #
(*p)++;
num输出为6。