C语言:char * =”abcdef”; char a[]=”abcdef”; 编译之前的区别

char * a = "abcdef";
表示的是:a是一个字符串指针,指向的是一个字符串常量"abcdef",所以如果用*a =‘x’这样的重新赋值是不允许的(也就是修改字符串常量"abcdef"是不允许的)。用a=这样的赋值是可以的,也就是a指向了另外的地址。

char a[] = "abcdef";
表示的是:a是一个字符型数组,并且初始化的数值是{‘a’,'b','c','d','e','f','\0'}共有7个元素,那么当然可以修改数组中的数值。追问

怎么修改 a[]的值?

追答

a[0]=
a[6]=
都可以,但不能用a=

温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-10-10
编译之前的区别就是指针定义错了吧 *后边得有标识符 别的区别就是一个是指针类型 一个字符类型
相似回答