c语言伪常量const理解
2016-08-09 14:56
375 查看
const是伪常量,无法用于数组的初始化和全局变量的初始化,本质就是限定一个变量不能直接赋值。
如以下代码:
但是如果局部变量是能够初始化编译并运行的
const是伪常量,都知道常量是不能改变值的。例如这样是根本无法编译的。
前面一直强调const是伪常量,因为可以间接的去改变它的值。利用指针变量
如以下代码:
#define A 10 int arr[A]; //const本质,伪常量 ,无法用于数组初始化和全局变量初始化 /* const int B = 10; int arr[B]; */
但是如果局部变量是能够初始化编译并运行的
void main() { const int B = 10; int arr[B]; }
const是伪常量,都知道常量是不能改变值的。例如这样是根本无法编译的。
void main() { //num在栈区,只有栈区会自动回收释放 //局部const常量在栈区,而不在静态区(静态区会一直存在) const int num = 10;//num就是一个常量 //num = 11; //const本质,限定一个变量不能直接赋值 }
前面一直强调const是伪常量,因为可以间接的去改变它的值。利用指针变量
void main() { //num在栈区,只有栈区会自动回收释放 //局部const常量在栈区,而不在静态区(静态区会一直存在) const int num = 10;//num就是一个常量 //num = 11; //error const本质,限定一个变量不能直接赋值 //间接改变常量值 const int *p = #//定义一个指针指向一个常量,存储num的地址 int *pv = (int *)p;//对指向常量的指针进行强制转换 *pv = 8;//对指针指向内容赋值 printf("%d",num); //8 }
相关文章推荐
- C语言中const char* 和char* const等常量的正确理解
- 指针常量C语言关键字const再理解
- C语言深入理解 - 常量与变量
- C语言之const常量(摘自C和指针)
- C++ 语法实验室之指针、常量const、字符串和等号初学误区理解
- c语言之const理解
- C++ 常量折叠和C语言中const常量对比
- C语言深入理解 - 常量与变量
- C++中常量指针,指针常量(const 和*)的使用方法和理解方法
- c语言中 const 之我的理解
- C语言中的const用法以及常量指针与指针常量(有口诀!)
- C语言之变量、常量(define\const)、变量的声明和定义
- C语言对const的理解
- 关于C语言中常量指针和指针常量的一点理解
- (转载)C++常量折叠和C语言中const常量对比
- c语言中const 关键字的理解
- C语言返璞归真之修改const常量和使用变量定义数组长度
- C语言中,常量=const?
- C语言中对const的理解
- C语言 const常量讲解