为了账号安全,请及时绑定邮箱和手机立即绑定

109. 设有如下函数定义:

109. 设有如下函数定义:

C
包小龙虾 2018-08-01 11:51:00
109. 设有如下函数定义:int fun(char *str){ char *p=str;while ( *p != '\0') p++; return (p-str);}则以下语句执行后的输出结果是( )。printf("%d\n",fun("Student"));A. 7B. 8C. 9D. 10求会的大神详细解析下,拜托了
查看完整描述

1 回答

已采纳
?
凌丶星护

TA贡献5条经验 获得超2个赞

从函数定义的部分开始解析:

要求传入的是一个字符类型的指针(亦或者理解为字符串的首地址)

然后将str的值传递给p(p中此时存储的就是字符串首地址)

开始循环,直到p指向的位置为'\0'(也就是说,到达了字符串的末尾)

然后返回p与传入指针的差值(也就是末尾的地址减去首地址,返回的就是字符串的长度)

实例:

已经知道函数返回字符串的长度,student的长度为7,选择A选项

查看完整回答
反对 回复 2018-08-02
  • 包小龙虾
    包小龙虾
    可是数组不是从0开始吗,那样的话p最后不是指向6吗?然后6-0,我不是很明白呀
  • 凌丶星护
    凌丶星护
    p指向6的时候指的是t,然后+1,为7的时候指的是“\0”
  • 凌丶星护
    凌丶星护
    。。。觉得好的话要不采纳一下?
点击展开后面4
  • 1 回答
  • 0 关注
  • 915 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信