#include<stdio.h>int fun(char *s)
{
char *t = s;
while(*t++); //这里因为++的运算级高于*,所以是先地址加char型长度再取值
//第一次循环条件: 'b'
//第二次循环条件: 'c'
//第三次循环条件: 'd'
//第四次循环条件: '\0' 第四次的时候直接跳出了
return t-s; //那么如果s[0] == 'a' 的地址是00 最后那个*t指向'\0'的地址就是 04
//所以返回值不应该是4吗?
}
int main() {
char *c = "abcd";
int a = fun(c);
printf("%d",a); //输出为什么是5?
return 0;
}
(这样分析哪里出错了,可能我调试的姿势不对,我没有解决该问题,请指教!多谢!)
1 回答
- 1 回答
- 0 关注
- 718 浏览
添加回答
举报
0/150
提交
取消