计算字符串的长度

#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;
}
(这样分析哪里出错了,可能我调试的姿势不对,我没有解决该问题,请指教!多谢!)


荒小北158
浏览 719回答 1
1回答
打开App,查看更多内容
随时随地看视频慕课网APP