printf("%d %d",sizeof('a'),sizeof("a"))
这是输出为4和2.为什么输出是这样的?
答案 0 :(得分:5)
在C中,字符常量的类型为int
,因此在您的情况下为4个字节。当应用于字符串文字(例如"a"
)时,sizeof
会产生字节数。因此2('a'
和'\0'
)。
此外,%d
不是打印size_t
的正确说明符。您应该使用%zu
或%zd
。
答案 1 :(得分:2)
第一个因为'a'
是一个字符(注释单引号)并在C中被视为int
类型。
第二个因为"a"
是一个由两个字节'a'
和'\0'
组成的字符串(双引号)。