有以下函数功能是:A:计算s所指字符串的长度、B,计算s所指字符串占用内存字节的个数。我拿不准

来源:百度知道 编辑:UC知道 时间:2024/09/12 16:35:05
int fun(char *s)
{char *t=s;
while(*t++);
return(t-s);
}

B
当 *t ='\0' 退出循环,但接着依然会再执行一次 t++,

所以该程序的结果是:字符串结束后一个单元指针值减去字符串开始指针值,包括了"\0",所以得到的结果是字符所占的字节个数。

应该是字符串的长度。

B
因为 所占字节数包括'\0' 二字符串长度不包括

A.

return(t-s);因为这是指针地址相减,计算的是指针移动次数,和类型无关,因为每次移动是按变量所占字节长来的.如字符是1,而整型是2.相当于是当t指向'\0'时的地址和S所指向的地址相减.
如字符串s="china";.地址为0XFF00,t=s,while(*t++)结束后t指向'\0',因这是字符型,只占一个字节,t地址就是0XFF05,(偶地址系统不在讨论中)相减后得到的就是字符串不包含'\0'的长度.

肯定是A啦