问题 单项选择题

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

A.比较两个字符串的大小

B.计算s所指字符串占用内存字节个数

C.计算s所指字符串的长度

D.将s所指字符串自制到字符串t中

答案

参考答案:B

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

多项选择题
单项选择题