关于if句的判断,请教大家!
#include<stdio.h> #include<string.h> int main(viod) { char name1[10]; char name[10]; if(!strcmp(name1,name2)) printf("两字符串相同!\n"); else printf("两字符串不同!\n"); } //就是这一句 if(!strcmp(name1,name2)) 有3个返回值,前面一个非运算符 //算什么嘛,有没有什么判断法则? |
搜索更多相关的解决方案:
判断
----------------解决方案--------------------------------------------------------
!strcmp(name1,name2) 两结果:0或者非0
----------------解决方案--------------------------------------------------------
为什么非0就执行if后面的语句呢,!strcmp(name1,name2)这两个哪个算是真呢?我不是很聪明,绕不过弯,能解释的通俗易懂点吗?谢谢!
----------------解决方案--------------------------------------------------------
strcmp(name1,name2) 结果要是0的话 那!strcmp(name1,name2) 就不是0
strcmp(name1,name2) 结果要非0的话 那!strcmp(name1,name2) 就是0
----------------解决方案--------------------------------------------------------
谢谢feng1256!
----------------解决方案--------------------------------------------------------
你把它可以写成strcmp(name1,name2)==0,这样相等时就执行IF中的句子了,不必用非运算符。
----------------解决方案--------------------------------------------------------
谢谢你就是看那个!别扭
----------------解决方案--------------------------------------------------------
除0以外的数都当成1
----------------解决方案--------------------------------------------------------
这个函数就2个结果出来啊,0和1
----------------解决方案--------------------------------------------------------
不是0,1这么简单,而是非零值都为真值,结构也可以返回10等等
----------------解决方案--------------------------------------------------------