关于这句代码是什么意思,有什么作用呢

char *pos = strchr(buf + 2, '\0');检测NULL,不是返回空吗

1个回答

strchr函数当查找失败时,返回NULL。
当查找成功时,返回一个指针,该指针指向找到的字符。

题目中的代码,查找字符串结束字符'\0',是能够成功的,所以并不返回NULL,
而是返回指向'\0'字符的指针。

看一下例子:

#include <stdio.h>   
#include <string.h>   

int main() {
    char buf[] = "hello"; //字符串末尾隐含'\0'
    char *pos = strchr(buf + 2, '\0'); 
    printf("%p\n",pos);    //打印该指针值
    printf("%d\n",*pos);  //注意和上一行的区别
    return 0;
}

可以运行此程序,观察输出。

如果对您有帮助,请采纳答案好吗,谢谢!

caozhy
回答这么多问题就耍赖把我的积分一笔勾销了 回复向大佬低头: 这个trybye我从来没看过他采纳过回答。答主的热心估计得喂狗了。
大约 3 年之前 回复
qq_23126581
渊渟无迹静涛君 建议楼主采纳 这个答案。
大约 3 年之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐