对字符数组的初始化问题(C++ 运行环境为VC 6.0)

2024-11-22 08:25:52
推荐回答(5个)
回答1:

这些是基本的概念,你一定要弄懂:

char a[12]; //定义了一个字符数组,数组名称为a,这个时候,a是一个指针,并且是常量类型,在整个数组生存期内其值都是不可改动的。
a = "null"; //这个时候,a是一个常量指针,指向数组的首地址,他的值在数组的生存期都是不可改变的。现在把一个字符串赋值给他,当然是不行的。
*a = "null"; //a本身是一个常量指针,指向数组的首地址,对他进行解引用,得到一个字赋值,此时把一个字符串常量的首地址赋值给他,这个比较无厘头,不谈了。

char *a; //定义了一个字符指针。
a = "null"; //把一个字符串常量赋值给他,也就是把常量"null"的首地址赋值给a,正确。
*a = "null"; //a是一个字符指针,对他进行解引用后,得到的必然是一个单个字符值,把一个字符常量的首地址付给这个字赋值,这个也同样无厘头。

认真考虑考虑。

enjoy!

回答2:

char a[12];
a="null"; 错误.//因为a是首地址 不是指针 创建a[]时就确定了 不能改变
*a="null"; 错误//因为*a是a[0],它存储一个字符 如‘n’
char *a;
a="null"; 正确.//把字符串“null”的首地址赋值给指针a,即a指向“null”
*a="null"; 错误.//a连地址内容都没有 怎么给他地址指向的内容赋值?再者 其指向的内容对于字符串也不能这样赋值。

回答3:

我说伙计你怎么能这样定义呢
数组在被定义后就后被分配内存,如果没有被初始化的话就是为空NULL
而你为何又对其赋空值呢???
你定义的是数组怎么又用a来定义为指针呢???你这好大的错误啊
就算你要给一个指针赋值的话 例如:int *pf pf=NULL 这样就可以了啊
指针pf就成了一下空指针了,即pf 指向一个空地址!

回答4:

char a[12]定义的a是char*类型的常量
char* a定义的a是char*变量
*a是char类型

回答5:

*a是指针吧