C中的const:
修饰的变量是只读的,本质还是变量
其修饰的局部变量在栈上分配空间
其修饰的全局变量在只读存储区分配空间
const只在编译期有用,在运行期无用
C++中的const:
当碰见const声明时在符号表中放入常量
编译过程若发现使用常量则直接以符号表中的值替换
编译过程中若发现下属情况则给对应的常量分配空间:对const常量使用了extern,对const常量使用了&操作符
const int c=5; -----------> #define c 5-------->但const常量跟宏定义不同,const要进行类型检查和作用域检查,而不是简单的文本替换
#include <stdio.h>
void f()
{
#define a 3
const int b = 4;
}
void g()
{
printf("a = %d\n", a);
//printf("b = %d\n", b);
}
int main()
{
const int A = 1;
const int B = 2;
int array[A + B] = {0};
int i = 0;
for(i=0; i<(A + B); i++)
{
printf("array[%d] = %d\n", i, array[i]);
}
f();
g();
return 0;
}