看板 C_and_CPP 關於我們 聯絡資訊
開發平台(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
fireslayer: !就是邏輯NOT 04/27 16:21
tarobear: 我知道是not 但這個判斷是什麼意思? 04/27 16:27
tarobear: 是指flag有變動就成立嗎? 04/27 16:28
※ 編輯: tarobear (175.96.124.117), 04/27/2015 16:32:55
tarobear: 好像也不是這樣QQ 有人能幫忙解釋嗎 04/27 16:38
samuelcdf: 變數的內容只要不是0就是true, 否則為false 04/27 16:43
samuelcdf: !是把上述的結果再顛倒過來 04/27 16:43
samuelcdf: 我不太愛這種寫法, 可是別人會寫所以還是該了解一下 04/27 16:44
tarobear: 所以是 !flag 意思等同 flag==0 嗎? 04/27 16:49
CaptainH: 是 04/27 16:54
tarobear: 了解! 感謝各位!! 04/27 16:57
uranusjr: 這作者是和 break 有什麼恩怨嗎... 04/28 00:17
v7q4: 把int拿來做boolean處理...這種寫法遲早會出事 04/28 14:38
MOONRAKER: 不要boolean當int計算就好。 04/28 16:10