sizeof( ) 与 strlen( )
sizeof()
是 C 语言的一个运算符,可以计算括号数据类型或变量所占字节多少,例如:
sizeof (int) = 4; sizeof (char) = 1;
int num = 0;
sizeof (num) = 4;
sizeof (6.23) = 8;
-
当括号内的运算对象是数据类型时,括号必不可少,但是对于特定量,如上例中的
num
,括号可有可无,即sizeof num
。尽管如此,还是建议所有情况下都使用圆括号。 -
sizeof()
返回值为无符号整型,在 C99 和 C11 标准中专门为它的返回类型添加了%zd
返回类型(并且对于strlen()
同样适用),对于早期的 C ,其返回的实际类型为unsigned int
。
strlen()
是专门测量字符串长度的,返回的长度不包括代表字符串结束的空字符 \0
,而 sizeof()
测量时会将其考虑在内。因此:
#include<stdio.h>
#include<string.h>
int main() {
char str[] = "abcdefg";
printf("%d %d\n", sizeof(str), strlen(str));
return 0;
}