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

Dhr*_*hah 0 c sizeof char

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

Arc*_*676 6

甲char即字符有尺寸1.

该字符串文字 "a"是不是一个字符.它是一个"字符串"(我的意思是字符串char[]).C中的所有"字符串"都以null结尾,因此您的"字符串"实际上是:

{'a','\0'}
Run Code Online (Sandbox Code Playgroud)

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


Mag*_*sch 5

sizeof("a")
Run Code Online (Sandbox Code Playgroud)

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

sizeof(char)
Run Code Online (Sandbox Code Playgroud)

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