Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/60.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C中的指针。为什么函数不是´;不行吗?_C_Function_Pointers - Fatal编程技术网

C中的指针。为什么函数不是´;不行吗?

C中的指针。为什么函数不是´;不行吗?,c,function,pointers,C,Function,Pointers,可能重复: 我真的不明白为什么函数检查返回true!!!我使用strcmp比较char[]指针(hello)和chars“bar”数组 如果字符串相等,则返回0 您的条件应被否定: if(!strcmp( word , "bar")) return true; 或与0相比: if(strcmp( word , "bar") == 0) return true; 我真的不明白为什么函数检查返回true 有趣的是,在原始的基本C代码中,除了包含一些额外的头文件(如stdboo

可能重复:

我真的不明白为什么函数检查返回true!!!我使用strcmp比较char[]指针(hello)和chars“bar”数组

如果字符串相等,则返回
0

您的条件应被否定:

if(!strcmp( word , "bar"))
    return true;
或与
0
相比:

if(strcmp( word , "bar") == 0)
    return true;

我真的不明白为什么函数检查返回true

有趣的是,在原始的基本C代码中,除了包含一些额外的头文件(如stdbool.h)之外,没有“真”或“假”(或“bool”)。。。但我离题了

这不是真的。请阅读上的手册。您可以在Linux上通过
man3strcmp
或谷歌搜索“manstrcmp”来实现这一点

手册将告诉您该功能的返回值为:

。。。如果发现s1(或其前n个字节)分别小于、匹配或大于s2,则小于、等于或大于零的整数

请记住,对于条件检查,所有非0的整数值都将被视为“真”。也就是说,在这段代码中:

if(strcmp(word, "bar"))
任何的“bar”字都是“true”。如果匹配项等于零,则需要:

if(strcmp(word, "bar") == 0)

请注意,如果您要在全局范围内声明某些东西,就像您使用

char pointer[] = "hello";  

不需要将其传递给函数,您可以全局访问它,这是全局访问的要点。但是,一般不赞成全局变量。

strcmp
在字符串不同时返回非零。请阅读详细手册。具体地说,是的。是另一种方式吗,
char pointer[] = "hello";