字符数组大小

时间:2013-12-13 14:59:29

标签: c arrays string

下面的代码有什么区别?显然,第一个声明最多可以容纳200个字符,但第二个声明呢?

char name[200] = "Name";
char name[] = "Name";

2 个答案:

答案 0 :(得分:6)

首先创建一个包含200 char的数组,并使用{'N','a','m','e','\0', ... }初始化其内容(其余内容填充NUL s。)

第二个创建一个足以容纳"Name"的数组,即5 char s(NUL再增加一个

此外,你应该在C和C ++中使用双引号作为字符串文字。

答案 1 :(得分:3)

首先你的意思是:

char name[200] = "Name";
char name[] = "Name";

(字符串引用"而不是'

然后区别在于,第一种情况下为name对象保留的存储空间为200字节,第二种情况为5字节(即字符串长度+ {{1)尾部空字符的字节。)