const的作用:
修饰的变量,(const离谁近谁不能自增)。
即是不能用该变量名修改这个变量所表示的内存空间的值。(把一个变量变成一个只读变量)。
例:const int num = 5;
num++; 这个语句不对,无法实现num+1=6。
int *p;
p=#
(*p)++; 这样可以改变num的值。最终num=6;
修饰函数:
例:const char *func(const char *str)const;
第一个const修饰的是返回值,则说明const修饰的char,也就是返回值的内容不能被修改。
第二个const修饰的是参数,表示这个参数在函数体中是不能被修改的。
第三个const修饰的是整个函数。这种情况一般出现在类成员函数里,并不是这个函数是不变的,而是这个函数不能改变类的成员变量。不论是public的还是private的。
volatile的作用:
volatile修饰的变量,会强烈要求编译器每次对该变量进行访问时都要重新去内存里读取,而且读取的数据立即被保存。
volatile一般使用的地方:
(1):中断服务程序中修改的供其他程序检测的变量需要加volatile;
(2):多任务环境下各任务间共享的标志应该加volatile;
(3):存储器映射的硬件寄存器通常也要加volatile;