[問題] !a,a是整數

看板C_and_CPP (C/C++)作者 (4545454554)時間13年前 (2012/07/19 23:00), 編輯推噓2(206)
留言8則, 6人參與, 最新討論串1/1
程式碼(Code):(請善用置底文網頁, 記得排版) #include <stdio.h> int main() { int a = 10, b = 5, c = 1, d = 7; if (!a > 100 && b < 6) { if (c < 4 || d > 8)   printf("A"); else printf("B"); } else printf("C"); return 0;   } 補充說明(Supplement): 輸出是C 可見 !a > 100 && b < 6 不成立 我知道!a > 100是false !用在數字前 不就是負號的意思嗎? 我原本預期!a會是-10 但實際上 !a=0 請問這是為什麼? THX -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 36.236.247.234

07/19 23:01, , 1F
誰跟你說!a是負號的意思的= =?
07/19 23:01, 1F

07/19 23:02, , 2F
! 是 boolean not 因為所有非零都是 true 所以 !a 是 false
07/19 23:02, 2F

07/19 23:02, , 3F
!是(boolean) logic not... -是negation, ~是not
07/19 23:02, 3F

07/19 23:02, , 4F
!是把true變成false,false變成true的意思
07/19 23:02, 4F

07/19 23:02, , 5F
而 false 解做數字時是 0
07/19 23:02, 5F

07/19 23:03, , 6F
一分鐘內突然好幾個人回覆 XDDD
07/19 23:03, 6F

07/19 23:18, , 7F
謝謝 我好像想起是怎麼一回事了
07/19 23:18, 7F

07/20 19:04, , 8F
-a !a ~a *a &a 傻傻分不清
07/20 19:04, 8F
文章代碼(AID): #1G224M0F (C_and_CPP)
文章代碼(AID): #1G224M0F (C_and_CPP)