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;
謝謝采納。

芝麻大點
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里面的代碼,相等是不執行的。
- 2 回答
- 0 關注
- 2201 瀏覽
添加回答
舉報
0/150
提交
取消