有下列函数: int fun(char*s) {char*t=s; while(*t++); re

有下列函数:intfun(char*s){char*t=s;while(*t++);return(t-s);}该函数的功能是()。A)比较两个字符串的大小B)计算s所指字... 有下列函数:
int fun(char*s)
{char*t=s;
while(*t++);
return(t-s);}
该函数的功能是( )。
A)比较两个字符串的大小 B)计算s所指字符串占用内存字节的个数
C)计算s所指字符串的长度 D)将s所指字符串复制到字符串t中
展开
 我来答
六十七年
2015-01-13 · TA获得超过493个赞
知道小有建树答主
回答量:293
采纳率:57%
帮助的人:90.8万
展开全部

选B

以“hello”为例

假设其地址为1则s=1

字符和对应地址如下

h----->1

e----->2

l------>3

l------>4

o----->5

'\0'--->6

对于while(*t++);

退出的时候t指向了‘\0’

但是*t++操作 导致t=7

最后t-s = 7-1 = 6 =sizeof(a);

所以答案选B

如果是while(*++t);

则选C

世界多荒唐
2015-01-13 · 超过10用户采纳过TA的回答
知道答主
回答量:138
采纳率:0%
帮助的人:30.3万
展开全部
c
追问
他为什么要返回t-s
追答
中间那个是连接符号,是计算两个字符串在一起的总长度
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
相与处
2015-01-13
知道答主
回答量:56
采纳率:0%
帮助的人:18.2万
展开全部
C
更多追问追答
追问
为什么?
追答
t最后的地址指向'\0' 和s差的正好是一个字符串,不包含'\0'
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式