首页 > 试题广场 >

有以下函数,该函数的功能是( ...

[不定项选择题]
有以下函数,该函数的功能是()
int fun(char *s) {
    char *t = s;
    while(*t++);
    return(t-s);
}


  • 比较两个字符的大小
  • 计算s所指字符串占用内存字节的个数
  • 计算s所指字符串的长度
  • 将s所指字符串复制到字符串t中
为什么是多选题?
发表于 2022-03-05 14:54:05 回复(0)
*t++  最后会在\0后一个位置停止    \0后一个位置为此时指针指向  尾部减去头部包括\0就是字节数
而c答案字符串长度不包括最后的\0
编辑于 2019-09-03 16:58:10 回复(2)
不是 你没事儿吧 答案就1个要整个多选❓
发表于 2022-08-12 22:56:59 回复(0)
  1. *p++的意思是 取出来地址p的变量,然后地址p++,而不是对地址p中的元素进行++
  2. (*p)++是对地址p中的变量进行++
发表于 2022-03-06 14:19:36 回复(0)

chatgpt
这段代码定义了一个名为 fun 的函数,该函数接受一个指向字符串的指针作为参数,并计算该字符串的长度(不包括终止空字符 \0),然后返回这个长度。

具体来说,函数的功能如下:

char *t = s;:在函数内部创建了一个字符指针 t,并将其初始化为传入函数的参数 s,也就是指向字符串的起始位置的指针。

while (*t++);:这是一个 while 循环,其条件是 *t++,也就是检查指针 t 当前位置的字符是否为非空字符(不是终止空字符 \0)。循环会一直执行,直到遇到字符串的终止空字符为止。在每次循环迭代中,指针 t 会向后移动,以检查下一个字符。

return (t - s);:一旦循环结束,函数返回计算出的字符串长度。这是通过将指针 t 指向的位置减去指针 s 指向的位置来实现的。由于 s 和 t 最终分别指向字符串的起始和终止位置,所以这个差值等于字符串的长度。

总结:这段代码的主要功能是计算传入的字符串的长度,然后返回这个长度。这是通过迭代字符串中的字符并计数字符数量来实现的,直到遇到字符串的终

发表于 2023-09-22 15:54:00 回复(0)

正确答案B。B所说的包括了\0字符,而答案C不包括。

编辑于 2019-09-01 23:59:19 回复(0)
char *t = s;这行代码是将指针t指向s指向的字符串的首地址。也就是说,t和s指向同一个字符串的首地址。在函数中,指针t被用来计算字符串的长度,而指针s则保留了原来的字符串首地址,以便后续的操作。
编辑于 2023-09-04 11:55:11 回复(0)
指针-指针不是元素个数吗,但是还得包含\0(元素+1),答案又是字节数
编辑于 2023-12-09 20:53:25 回复(0)
感觉题目出得有问题,如果s里面包含'\0'得出的结果就不对呀。
发表于 2023-10-14 09:21:12 回复(0)
包括/0
发表于 2023-09-25 20:25:02 回复(0)
不对啊,地址移动,t最后移动到/0的时候对于t解引用时/0为NULL,while判断结果为NULL就会退出,这个时候t指向/0结束,如"abcd",s指向a的位置,t指向/0,t-s的值就是4,字符串的长度strlen才对啊
发表于 2023-09-05 11:44:07 回复(0)
占用内存的字节个数包括“\0”
字符串长度包括“\0”
题目中计算时包括“\0”
发表于 2023-08-22 22:05:23 回复(0)
定义一个字符串指针变量s 把指针s的首址址赋于t(让T指向这个字符串的首地址) 当指针不指向末尾时,不停向后移动 返回这个字符串的长度.. 这个函数的意思就是测试S这个字符串的长度
发表于 2023-03-31 13:58:58 回复(0)
6
发表于 2023-03-22 14:56:51 回复(0)
本来我只b,你非要多选
发表于 2023-01-01 17:19:30 回复(2)
不是多选?哈哈哈
发表于 2022-07-06 00:01:23 回复(0)
t走到 ' \0 ' 后一个位置
发表于 2022-04-21 18:38:54 回复(0)
后缀自增运算符优先级大于解引用运算符
发表于 2022-04-06 18:58:01 回复(0)
*(t++),但t++的返回值是原来的t值,所以这种用法的意思是,求当前t位置的值,然后将t往后移一位,用于遍历数组的元素值。
发表于 2022-03-03 15:58:25 回复(0)
字符串长度不包括 /0   占用内存长度包括/0
用当*t 值为/0时,会再执行后移的操作,指向了/0的下一个
发表于 2022-03-02 09:23:30 回复(0)