求此c语言程序的结果

来源:百度知道 编辑:UC知道 时间:2024/05/30 13:55:06
char *ss(char *s)
{return s+strlen(s)/2;}
main()
{char*p,*str="abcdefgh";p=ss(str);printf("%\n",p);}在解释下return语句中的s+…

s+即字符数组s[] s+0即s[0]
所以看return这句:假设返回字符串s的长度除以2的数为x,即返回的是s[x]所在的字符
整段代码有字符数组的嵌套,无非是加了指针以后使楼主迷惑。
p是指针,最后输出的是p所指向的地址,即字符串ss中的字符,代值返回,即,abcdefgh长度为8,除以2为4,return s[4] 即str中的第五个元素,而p的头指针指向str,则答案是e

return的是一个指针,指向的内容是S的中间