对字符数组的初始化问题(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" 错误;
希望高手对以上四个问题指点一二,谢谢 展开
a="null"; 错误.
*a="null" 错误;
又如果定义 char *a;
a="null"; 正确 .
*a="null" 错误;
希望高手对以上四个问题指点一二,谢谢 展开
展开全部
这些是基本的概念,你一定要弄懂:
char a[12]; //定义了一个字符数组,数组名称为a,这个时候,a是一个指针,并且是常量类型,在整个数组生存期内其值都是不可改动的。
a = "null"; //这个时候,a是一个常量指针,指向数组的首地址,他的值在数组的生存期都是不可改变的。现在把一个字符串赋值给他,当然是不行的。
*a = "null"; //a本身是一个常量指针,指向数组的首地址,对他进行解引用,得到一个字赋值,此时把一个字符串常量的首地址赋值给他,这个比较无厘头,不谈了。
char *a; //定义了一个字符指针。
a = "null"; //把一个字符串常量赋值给他,也就是把常量"null"的首地址赋值给a,正确。
*a = "null"; //a是一个字符指针,对他进行解引用后,得到的必然是一个单个字符值,把一个字符常量的首地址付给这个字赋值,这个也同样无厘头。
认真考虑考虑。
enjoy!
char a[12]; //定义了一个字符数组,数组名称为a,这个时候,a是一个指针,并且是常量类型,在整个数组生存期内其值都是不可改动的。
a = "null"; //这个时候,a是一个常量指针,指向数组的首地址,他的值在数组的生存期都是不可改变的。现在把一个字符串赋值给他,当然是不行的。
*a = "null"; //a本身是一个常量指针,指向数组的首地址,对他进行解引用,得到一个字赋值,此时把一个字符串常量的首地址赋值给他,这个比较无厘头,不谈了。
char *a; //定义了一个字符指针。
a = "null"; //把一个字符串常量赋值给他,也就是把常量"null"的首地址赋值给a,正确。
*a = "null"; //a是一个字符指针,对他进行解引用后,得到的必然是一个单个字符值,把一个字符常量的首地址付给这个字赋值,这个也同样无厘头。
认真考虑考虑。
enjoy!
展开全部
char a[12];
a="null"; 错误.//因为a是首地址 不是指针 创建a[]时就确定了 不能改变
*a="null"; 错误//因为*a是a[0],它存储一个字符 如‘n’
char *a;
a="null"; 正确.//把字符串“null”的首地址赋值给指针a,即a指向“null”
*a="null"; 错误.//a连地址内容都没有 怎么给他地址指向的内容赋值?再者 其指向的内容对于字符串也不能这样赋值。
a="null"; 错误.//因为a是首地址 不是指针 创建a[]时就确定了 不能改变
*a="null"; 错误//因为*a是a[0],它存储一个字符 如‘n’
char *a;
a="null"; 正确.//把字符串“null”的首地址赋值给指针a,即a指向“null”
*a="null"; 错误.//a连地址内容都没有 怎么给他地址指向的内容赋值?再者 其指向的内容对于字符串也不能这样赋值。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
我说伙计你怎么能这样定义呢
数组在被定义后就后被分配内存,如果没有被初始化的话就是为空NULL
而你为何又对其赋空值呢???
你定义的是数组怎么又用a来定义为指针呢???你这好大的错误啊
就算你要给一个指针赋值的话 例如:int *pf pf=NULL 这样就可以了啊
指针pf就成了一下空指针了,即pf 指向一个空地址!
数组在被定义后就后被分配内存,如果没有被初始化的话就是为空NULL
而你为何又对其赋空值呢???
你定义的是数组怎么又用a来定义为指针呢???你这好大的错误啊
就算你要给一个指针赋值的话 例如:int *pf pf=NULL 这样就可以了啊
指针pf就成了一下空指针了,即pf 指向一个空地址!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
char a[12]定义的a是char*类型的常量
char* a定义的a是char*变量
*a是char类型
char* a定义的a是char*变量
*a是char类型
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
*a是指针吧
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询