带有字符串的C行为中的sizeof运算符

对于sizeof运算符,我看到以下结果;我无法理解背后的原因。我的理解是sizeof运算符以size_t 的形式返回结果
下面是结果,

sizeof("6") -> 2
sizeof("a") -> 2
sizeof('a') -> 4
sizeof("something") -> 10
sizeof("some") -> 5

回答

根据定义(C11 3.6),1 个字符需要 1 个字节(在某些外来系统中可能不是 1 个八位字节)

"6"已经类型char[2],所以2个字节
"a"的类型是char[2]
'a'具有类型int在系统中==>,int需要4个字节
"something"的类型是char[10]
"some"具有类型char[5]

请注意,"a"and'a'是非常不同的东西:"a"是一个char包含 2 个元素的数组;'a'是一个int值,非常像42or -1


以上是带有字符串的C行为中的sizeof运算符的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>