15. *下面程序段的运行结果是()。 char c[ ]="\tv\\\0will\n"; printf("%d", strlen(c)); A) 13 B) 3 C) 9

30. *下面程序段的运行结果是()。

char c[ ]="\tv\\\0will\n";

printf("%d", sizeof(c));

A) 14

B) 3

C) 9

D) 10
strlen sizeof 到底分别是计算那些符号

printf("%d", sizeof(c));
sizeof(c)是问C这个字符串占多少个字符,也就是问有几个字符
strlen(c);是计算字符串的有效长度的,数到第一个'\0'结束
\t
v
\\
\0//如果是strlen()的话是数到这里的,这个0符不算的,是计算第一个0符前面有多少个字符,strlen(c)输出3
w
i
l
l
\n
这里有九个字符sizeof(c)输出9
这样说懂了吗?追问

可是sezeof(c)输出是10啊

追答

哦忘了,初始化的时候最后一个后面还要加一个'\0'这样的话是10个了

温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-02-21
strlen计算字符串的长度,sizeof是计算字节的长度,答案是D
第2个回答  2012-02-21
额,受教了
第3个回答  2012-02-21
要不要整的这么纠结。受教了。