C语言中的if表达式

if(!strcmp(recvbuf,"quit")){//判断用户输入的是否是quit
                    break;
                 }

这段代码,如果recvbuf和quit相等,strcmp返回的不是真。if()里面不是为真的时候才执行下面的代码吗?为什么加了!号才执行

qq_莫非
浏览 2144回答 2
2回答

___C___

简单说明:一:当recvbuf和"quit"相等时,strcmp返回0,即 strcmp(recvbuf,"quit"))  为 false二:在false加了!,取反,即 !strcmp(recvbuf,"quit"))  为 true三:if(true) 即执行 break;谢谢采纳。

芝麻大点

strcmp(s1,s2) 判断两个字符串s1和s2是否相同,相同返回true ,不同返回false;if()如果括号里面是true,则执行if里面的代码,里面有个“!”,那么strcmp(s1,s2)的返回值是false才执行if里面的代码,这样的话if(!strcmp(recvbuf,"quit"))则是如果recvbuf和“quit”不相等,才执行if里面的代码,相等是不执行的。
打开App,查看更多内容
随时随地看视频慕课网APP