C语言关键字const就是用来限定一个变量不允许被改变的修饰符。上述代码中变量n被修饰为 只读变量,可惜再怎么修饰也不是常量。而ANSI C规定数组定义时维度必须是“常量”,“只读变量”也是不可以的。 2.在ANSI C中,这种写法是错误的,因为数组的大小应该是个常量,而const int n,n只是一个变量(常量 != 不可变的...
1.定义一个指针并分配空间:int *p=malloc(500*sizeof(int));2.给p指向的空间赋值:for(int i=0;i<500;i++)(p+i)=i;3.定义一个指向常量的指针,用q来访问p:int const *q=p;4.可以修改q的值 如:int a=*(q+1);这样p所指向的数组就隐藏了,没人能修改它。
const 定义 的并非真正的 常量 ,其实质是只读的 变量 。在c中,#define定义的才是真正的常量。因而 数组 的 长度 引用const定义 符号常量 无效。