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

我定义一个字符数组:chara[12];a="null";错误.*a="null"错误;又如果定义char*a;a="null";正确.*a="null"错误;希望高手对... 我定义一个字符数组: char a[12];
a="null"; 错误.
*a="null" 错误;

又如果定义 char *a;
a="null"; 正确 .
*a="null" 错误;

希望高手对以上四个问题指点一二,谢谢
展开
 我来答
capcoffee1
2010-10-11 · TA获得超过171个赞
知道答主
回答量:113
采纳率:0%
帮助的人:94万
展开全部
这些是基本的概念,你一定要弄懂:

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

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

认真考虑考虑。

enjoy!
百度网友43ebde78e
2010-10-11 · TA获得超过1040个赞
知道小有建树答主
回答量:592
采纳率:0%
帮助的人:699万
展开全部
char a[12];
a="null"; 错误.//因为a是首地址 不是指针 创建a[]时就确定了 不能改变
*a="null"; 错误//因为*a是a[0],它存储一个字符 如‘n’
char *a;
a="null"; 正确.//把字符串“null”的首地址赋值给指针a,即a指向“null”
*a="null"; 错误.//a连地址内容都没有 怎么给他地址指向的内容赋值?再者 其指向的内容对于字符串也不能这样赋值。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
xiaochaosheng
2010-10-11 · TA获得超过171个赞
知道答主
回答量:86
采纳率:0%
帮助的人:0
展开全部
我说伙计你怎么能这样定义呢
数组在被定义后就后被分配内存,如果没有被初始化的话就是为空NULL
而你为何又对其赋空值呢???
你定义的是数组怎么又用a来定义为指针呢???你这好大的错误啊
就算你要给一个指针赋值的话 例如:int *pf pf=NULL 这样就可以了啊
指针pf就成了一下空指针了,即pf 指向一个空地址!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
jamesfancy
2010-10-11 · TA获得超过532个赞
知道小有建树答主
回答量:373
采纳率:0%
帮助的人:314万
展开全部
char a[12]定义的a是char*类型的常量
char* a定义的a是char*变量
*a是char类型
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友09be342
2010-10-11 · TA获得超过183个赞
知道答主
回答量:117
采纳率:0%
帮助的人:49.6万
展开全部
*a是指针吧
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式