2013-12-13 121 views
-3

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

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

''Name''是一个'int' ..怀疑你想要''Name“'。 – chux

回答

6

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

第二个创建数组只是大到足以容纳"Name",也就是5 char S(再来一个NUL

此外,你应该使用C和C++字符串字面双引号。

3

首先,你的意思是:

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

将差额存储保留在第一种情况下name对象(串与"'报价)是200字节在第二种情况下是5字节(即字符串长度+ 1字节,用于结尾的空字符)。

+0

字符串以'\ 0'结尾 – rohit89

+0

''Name'中的四个字母'加上NULL结束符''\ 0''的一个额外字符。 – TypeIA