有道C语言-指针的计算题麻烦达人帮解下!!

数组及指针变量定义:char c[]="public"下列描述正确的是
A 函数strlen(p+i)的值为7
B 函数strlen(p)的值为7
C 函数strlen(p+i)的值为6
D 函数strlen(p)的值为6
我做出的答案是C,但给的正确答案是D,我弄不懂为什么,希望达人们帮我解释下!!谢谢
数组下标不是从0开始的吗?我是从这考虑的...对不起忘记打一个条件: " *p=c; "

strlen计算从当前字符到第一个'\n'的字符数,不包括\n,
所以,strlen(p)==6。而strlen(p+i)就要等于6-i了
温馨提示:内容为网友见解,仅供参考
第1个回答  2008-04-08
字符串长度是6啊,为什么你认为C正确呢

有道C语言-指针的计算题麻烦达人帮解下!!
1.strlen函数是用来测试字符串的实际长度的,所以不包括结束标记符的 2.p还是p+1决定了测试的字符串的起始字符,就是从哪个字符开始测试,所以strlen(p)的值为6,strlen(p+1)的值为5

有道C语言-指针的计算题麻烦达人帮解下!!
strlen计算从当前字符到第一个'\\n'的字符数,不包括\\n,所以,strlen(p)==6。而strlen(p+i)就要等于6-i了

有道C语言的计算题关于switch语句的麻烦达人帮解下!!
7:输出9 \/\/执行default 3:输出77 \/\/执行case1 case2 所以结果是668977

相似回答
大家正在搜