打印sizeof(char)和sizeof(“a”)有什么问题?

时间:2016-01-07 09:03:12

标签: c char sizeof

C中的sizeof(char)给出1,sizeof(“a”)给出2.请帮助

4 个答案:

答案 0 :(得分:6)

char,即字符的大小为1。

字符串文字 "a" 一个字符。它是一个“字符串”(字符串我的意思是char[])。 C中的所有“字符串”都以空值终止,因此您的“字符串”实际上是:

{'a','\0'}

那是两个角色。所以大小是2。

答案 1 :(得分:5)

sizeof("a")

"a"是一个读取{'a','\0'}的字符串,它是2个字符或2个字节。这是因为在C中,双引号表示一个字符串。 C中的字符串必须以空值终止。

sizeof(char)

保证单个字符的大小为1个字节。

答案 2 :(得分:3)

sizeof(char) 1字节 大小,其中“a”字符串对于字符有1byte,它将以null '\ 0'结束,因此sizeof("a") 2字节

答案 3 :(得分:2)

'a'与“a”

不同

至少对于像AVR这样的8位CPU:

'a'是单个字符和

sizeof('a') == 1,

你期待的答案。

“a”是其他答案中提到的字符串。