有以下函数:int fun(char *s){ char *t = s; while (*t++); return (t-s);} 该函数的功能是( )

admin2009-01-15  24

问题 有以下函数:int fun(char *s){ char *t = s;    while (*t++);    return (t-s);}    该函数的功能是(    )

选项 A、比较两个字符串的大小
B、计算s所指字符串占用内存字节个数
C、计算s所指字符串的长度
D、将s所指字符串自制到字符串t中

答案2

解析 本题中,首先让t指向形参s,然后通过一个循环体为空的while循环,将t逐次后移,直到其所指的内容为0(字符串结束标志)。注意,此时t仍然会被增1,所以从循环中出来,t指向的是s所指字符串的结束标志的后一个字节。由此可见,返回的t-s是s所指字符串占用内存字节的个数,故本题应该选择B。注意,选项C和选项B是不同的,选项C所说的长度并不包括字符串结束标志位,而选项B所说的个数则包括。即选项B所说个数始终比选项C所说长度大1。
转载请注明原文地址:https://kaotiyun.com/show/9hXp777K
0

最新回复(0)