[問題] !用法問題

看板C_and_CPP作者 (塔落熊)時間10年前 (2015/04/27 16:15), 10年前編輯推噓2(2011)
留言13則, 7人參與, 最新討論串1/1
開發平台(Platform):C 額外使用到的函數庫(Library Used): (Ex: OpenGL, ...) 問題(Question): 新手學到陣列時遇到一段程式如下 是在說將陣列中數字按大小排列, 並設flag減少執行次數. int flag i,j,temp; int flag=0; for(i=1;(i<4)&&(!flag);i++) { flag=1; for(j=0;j<4);j++) if(a[j]>a[j+1]) { temp=a[j]; a[j]=a[j+1]; a[j+1]=temp; flag=0; } } 我想問其中for的判斷要怎麼解釋? 不太懂(!flag)是什麼意思? -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 175.96.124.117 ※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1430122547.A.A38.html

04/27 16:21, , 1F
!就是邏輯NOT
04/27 16:21, 1F

04/27 16:27, , 2F
我知道是not 但這個判斷是什麼意思?
04/27 16:27, 2F

04/27 16:28, , 3F
是指flag有變動就成立嗎?
04/27 16:28, 3F
※ 編輯: tarobear (175.96.124.117), 04/27/2015 16:32:55

04/27 16:38, , 4F
好像也不是這樣QQ 有人能幫忙解釋嗎
04/27 16:38, 4F

04/27 16:43, , 5F
變數的內容只要不是0就是true, 否則為false
04/27 16:43, 5F

04/27 16:43, , 6F
!是把上述的結果再顛倒過來
04/27 16:43, 6F

04/27 16:44, , 7F
我不太愛這種寫法, 可是別人會寫所以還是該了解一下
04/27 16:44, 7F

04/27 16:49, , 8F
所以是 !flag 意思等同 flag==0 嗎?
04/27 16:49, 8F

04/27 16:54, , 9F
04/27 16:54, 9F

04/27 16:57, , 10F
了解! 感謝各位!!
04/27 16:57, 10F

04/28 00:17, , 11F
這作者是和 break 有什麼恩怨嗎...
04/28 00:17, 11F

04/28 14:38, , 12F
把int拿來做boolean處理...這種寫法遲早會出事
04/28 14:38, 12F

04/28 16:10, , 13F
不要boolean當int計算就好。
04/28 16:10, 13F
文章代碼(AID): #1LFV0peu (C_and_CPP)