C程序 - 带有\ 0字符的sizeof字符串

时间:2015-08-01 09:32:08

标签: c string sizeof

解释sizeof如何确定字符串的长度。

{{1}}

1 个答案:

答案 0 :(得分:6)

sizeof不确定字符串的长度。它确定结构在内存中占用的字节数。

在您的情况下,结构是str,一个字节数组。编译器知道有多少字节(包括两个尾随'\0')被放入数组中,因此它在编译时产生适当的大小。 sizeof不知道str是一个以null结尾的C字符串,所以它产生了15。

这与strlen形成对比,后者将您的字符串解释为C字符串,并返回第一个'\0'之前的字符数。