1,const
const修饰的变量是只读的,它所修饰的变量不能作为左值;
const修饰的局部变量在栈上分配空间
const修饰的全局变量在全局数据区分配空间
const只在编译期有用,在运行期无用
C语言中的const使得变量具有只读属性
现代C编译器中的const将具有全局生命周期,变量存储于只读存储区
const全局变量:只读,值不可改变
const局部变量:加了static,只读,值不可改变,不加static,值可以改变
工程应用:
const修饰函数参数表示在函数体内不希望改变参数的值
const修饰函数返回值表示返回值不可改变,多用于返回值指针的情形
2,volatile
volatile可以理解为编译器警告指示字,告诉编译器每次必须去内存中取变量值,主要修饰可能被多个线程访问的变量,也可以修饰被未知因素更改的变量,在多线程与嵌入式开发中常被使用。
const volatile int i = 0;
变量i具有什么特性?这个i是一个只读变量,且不允许编译器对其进行优化
本文深入解析C语言中const与volatile关键字的使用场景及特性。const使变量具有只读属性,适用于函数参数及返回值,确保数据在运行期不变。volatile指示编译器变量可能被外部修改,常见于多线程与嵌入式开发。结合两者,创建只读且不受优化影响的变量。
650

被折叠的 条评论
为什么被折叠?



