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";