C中的sizeof(char)给出1,sizeof(“a”)给出2.请帮助
答案 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”是其他答案中提到的字符串。