为了账号安全,请及时绑定邮箱和手机立即绑定

C语言中的if表达式

C语言中的if表达式

qq_莫非 2017-10-12 12:35:00
if(!strcmp(recvbuf,"quit")){//判断用户输入的是否是quit                     break;                  }这段代码,如果recvbuf和quit相等,strcmp返回的不是真。if()里面不是为真的时候才执行下面的代码吗?为什么加了!号才执行
查看完整描述

2 回答

已采纳
?
___C___

TA贡献168条经验 获得超109个赞

简单说明:

一:当recvbuf和"quit"相等时,strcmp返回0,即 strcmp(recvbuf,"quit"))  为 false

二:在false加了!,取反,即 !strcmp(recvbuf,"quit"))  为 true

三:if(true) 即执行 break;

谢谢采纳。

查看完整回答
1 反对 回复 2017-10-12
?
芝麻大点

TA贡献7条经验 获得超1个赞

strcmp(s1,s2) 判断两个字符串s1和s2是否相同,相同返回true ,不同返回false;

if()如果括号里面是true,则执行if里面的代码,里面有个“!”,那么strcmp(s1,s2)的返回值是false才执行if里面的代码,这样的话if(!strcmp(recvbuf,"quit"))则是如果recvbuf和“quit”不相等,才执行if里面的代码,相等是不执行的。

查看完整回答
反对 回复 2017-10-12
  • qq_莫非
    qq_莫非
    那为什么我测试的时候是相等的时候才执行,和你说的完全相反
  • 2 回答
  • 0 关注
  • 2143 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信