1500字范文,内容丰富有趣,写作好帮手!
1500字范文 > c语言伪常量const理解

c语言伪常量const理解

时间:2019-07-13 15:31:07

相关推荐

c语言伪常量const理解

const是伪常量,无法用于数组的初始化和全局变量的初始化,本质就是限定一个变量不能直接赋值。

如以下代码:

1 #define A 102 int arr[A];3 4 //const本质,伪常量 ,无法用于数组初始化和全局变量初始化5 /*6 const int B = 10;7 int arr[B];8 */

但是如果局部变量是能够初始化编译并运行的

1 void main()2 {3const int B = 10;4int arr[B];5 }

const是伪常量,都知道常量是不能改变值的。例如这样是根本无法编译的。

1 void main() {2//num在栈区,只有栈区会自动回收释放3//局部const常量在栈区,而不在静态区(静态区会一直存在)4const int num = 10;//num就是一个常量5//num = 11; //const本质,限定一个变量不能直接赋值6 }

前面一直强调const是伪常量,因为可以间接的去改变它的值。利用指针变量

1 void main() { 2//num在栈区,只有栈区会自动回收释放 3//局部const常量在栈区,而不在静态区(静态区会一直存在) 4const int num = 10;//num就是一个常量 5//num = 11; //error const本质,限定一个变量不能直接赋值 6 7//间接改变常量值 8const int *p = #//定义一个指针指向一个常量,存储num的地址 9int *pv = (int *)p;//对指向常量的指针进行强制转换10*pv = 8;//对指针指向内容赋值11 12printf("%d",num); //813 14 }

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。