回复 9楼 弟大勿勃
当用"a[6]="asdfg";"这样的语句时,就是把字符串常量赋值到了数组中了,用"a[3]='s';"这样的语句实际是改变数组的第四个元素的值,就可行。那么,在这里数组a就是一个变量了
咯,不然怎么能改变它的值呢!就是说"a[6]="asdfg";"这样的语句赋值了a,但它还是个变量?
关键问题前面那个是指针,指向了静态常量,所以不许通过指针修改。而后者的a自己是个变量,自己有自己的空间,和静态常量“asdf”不是一个东西,只是用静态常量来给a初始化而已,当然可以改了。
你都用malloc了,应该知道指针和数组是类似的又是有区别的,声明指针的时候他就只是一个指针,而生命数组的时候它是向内存申请一块空间,并把空间的地址返回过来。数组也是指针,不过是已经带有存放数据的空间了。。
指针可以指向另一个指针,而数组不行。
[此贴子已经被作者于2016-10-10 14:14编辑过]
φ(゜▽゜*)♪