许小嘿 2022-02-14 12:14 采纳率: 100%
浏览 21
已结题

运行出来是15,哪位可以解释一下呀

int aaa(char* s);
int main() {
int k;
char s[] = "www.suse.edu.cn";
k = aaa(s);
printf("%d\n",k);
return 0;
}
int aaa(char* s) {
char* t=s;
while (*t++);
return t - s - 1;
}

  • 写回答

3条回答 默认 最新

  • CSDN专家-link 2022-02-14 13:07
    关注

    这不是计算字符串长度么,这个字符串共有15个字符,所以输出为15
    具体是通过循环指针t,一直向后找字符串结束符的位置。字符串结束符在最后一个字符之后。实际t最终指向字符串结束符后面一个字符的位置,因为 * t++先判断 * t是否为0,然后再++,使得t指向字符串结束符后,while结束还会时t向后移动一位,所以字符串长度计算就是t的地址减去s的地址,还要再减去1的原因

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 2月22日
  • 已采纳回答 2月14日
  • 创建了问题 2月14日

悬赏问题

  • ¥100 支付宝网页转账系统不识别账号
  • ¥15 基于单片机的靶位控制系统
  • ¥15 AT89C51控制8位八段数码管显示时钟。
  • ¥15 真我手机蓝牙传输进度消息被关闭了,怎么打开?(关键词-消息通知)
  • ¥15 下图接收小电路,谁知道原理
  • ¥15 装 pytorch 的时候出了好多问题,遇到这种情况怎么处理?
  • ¥20 IOS游览器某宝手机网页版自动立即购买JavaScript脚本
  • ¥15 手机接入宽带网线,如何释放宽带全部速度
  • ¥30 关于#r语言#的问题:如何对R语言中mfgarch包中构建的garch-midas模型进行样本内长期波动率预测和样本外长期波动率预测
  • ¥15 ETLCloud 处理json多层级问题