2.在ANSI C中,这种写法是错误的,因为数组的大小应该是个常量,而const int n,n只是一个变量(常量 != 不可变的变量,但在标准C++中,这样定义的是一个常量,这种写法是对的),实际上,根据编译过程及内存分配来看,这种用法本来就应该是合理的,只是 ANSI C对数组的规定限制了它。那么在c语言中我们如果想定义一个常...
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修饰的变量或函数的形参和返回值,就不可以改变它们的数值。其实一个数组名就是一个指针,例如定义一个数组arrays[3],arrays就是数组名。用const修饰指针,意思是不允许改变指针所指向的变量的地址。in[1], in[2]表示数组的第2个变量,第3个变量。in[0]是第一个变量。
const 定义 的并非真正的 常量 ,其实质是只读的 变量 。在c中,#define定义的才是真正的常量。因而 数组 的 长度 引用const定义 符号常量 无效。
const定义的并非真正的常量,其实质是只读的变量。在c中,#define定义的才是真正的常量。因而数组的长度引用const定义符号常量无效。