用字符串初始化char型数组和字符指针的问题
chara[8];a="Helloo";errorC2440:“=”:无法从“constchar[6]”转换为“char[8]”为什么必须在定义的时候初始化呢...我是小...
char a[8]; a="Helloo"; error C2440: “=”: 无法从“const char [6]”转换为“char [8]” 为什么必须在定义的时候初始化呢...我是小白,望高手答疑解惑~
展开
1个回答
展开全部
哥哥来回答。
char
a[8];这样定义了一个数组后,数组名a就是个地址常量,也就是指针常量,只能指向该数组在内存地址空间中的首地址。不可以指向别的地址。
所以如果a
=
"hello";就是把字符串常量"hello"的首地址赋给地址常量a,这是不允许的。
而如果写成char
a[8]
=
"hello";这就是在定义数组a的时候就对其初始化,把"hello"串的每个字符赋值给数组a的元素。这是合理的。
并不是非得必须在定义的时候初始化,也可以定义之后再初始化,
比如:
char
a[8];int
i
=
0;
for
(i
=
0;
i
<
8;
i++)
{
a[i]
=
i;
}
char
a[8];这样定义了一个数组后,数组名a就是个地址常量,也就是指针常量,只能指向该数组在内存地址空间中的首地址。不可以指向别的地址。
所以如果a
=
"hello";就是把字符串常量"hello"的首地址赋给地址常量a,这是不允许的。
而如果写成char
a[8]
=
"hello";这就是在定义数组a的时候就对其初始化,把"hello"串的每个字符赋值给数组a的元素。这是合理的。
并不是非得必须在定义的时候初始化,也可以定义之后再初始化,
比如:
char
a[8];int
i
=
0;
for
(i
=
0;
i
<
8;
i++)
{
a[i]
=
i;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询