下面的代码有什么区别?显然,第一个声明最多可以容纳200个字符,但第二个声明呢?
char name[200] = "Name";
char name[] = "Name";
答案 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)尾部空字符的字节。)