这个代码的结果为啥是6呀??
sub()函数中,while语句使得p不断后移,直到*p的值为0为止,p开始指向s,输入的字符串s=“abcdeg”有6个字符,所以p就后移了6次。也就是说,sub()函数就是统计字符串s的长度,所以cout << sub(a) << endl;这句话输出的是6。
如有帮助,请采纳一下,谢谢。
你定义的字符数组a[]传给*s,
s的地址赋给指针*p,(*p)p++得到p=6,
return(p-s);的时候,
由于你定义的sub()是整形,s是字符类型,p是整型,
所以只输出了p=6,后面的减号和s没有返回,
而且return本来就只能返回一个值,两种类型存在也只能返回其中的一种。