劇多
首頁
資訊
體育
娛樂
汽車
投資
財經
軍事
科技
數碼
科學
遊戲
歷史
健康
政治
影視
旅遊
育兒
美食
時尚
房產
農業
社會
文化
教育
技術
美文
情感
故事
家居
職場
自然
闢謠
心理
攝影
漫畫
生活
其它
Club
Tips
熱門話題
搜尋
註冊
登入
首頁
>
Club
>
2021-02-16 19:02
c程式,a[j++]=a[i]是什麼意思?
14
回覆列表
1 # 使用者704227834582
題主的問題:
C語言中迴圈多少次,這個迴圈條件到底是怎麼判斷的?其實是賦值表示式的問題吧。假定題主實際關心的程式碼的for迴圈的迴圈體沒有做什麼奇怪的事情來改變迴圈次數。答案自然是0次。可以先把for迴圈解糖為while迴圈的形式:所以迴圈條件就看"i = j = 0"這個表示式的值。C語言裡,賦值運算子("=")是右結合(right-associative)的雙目運算子;賦值是一個表示式,可以用於其它表示式之中。所以等價於賦值表示式其實要完成兩件事情:賦值:將賦值運算子右邊的表示式的值賦予左邊的運算元將賦值後左邊的運算元的值當作整個表示式的值。如評論裡 @Sunchy321指正的,左邊與右邊的型別未必一樣,整個表示式的值是看左邊運算元的。所以"j = 0"作為表示式的值是0,然後"i = (j = 0)"的值也是0。所以題主的程式碼可以變為:所以迴圈0次。===========================================================手閒,順手dump個Clang給的AST好了。對這段原始碼:Clang生成的AST形如:其中題主關心的迴圈條件部分是:也就是跟i = (j = 0)等價的形式:
2 # 使用者6704656755005
都是對的,
a[j++] = a[i];
的意思 就是... a[j] = a[i] j++ 呵呵
發表回復
∧
中秋節和大豐收的關聯?
∨
爐石傳說亂鬥模式“新年慶典”好玩嗎?應該怎麼玩?
熱門排行
pubgwow模式是什麼?
等女孩子出門等了很久的文案?
張學友澳門演唱會坐多少人?
如何治白蟻?
洗臉盆溢水孔反味怎麼辦?
羊肉一週吃幾次?
光紀之約通行證一週可以全領嗎?
0.025乘以16等於多少怎麼驗算?
怎麼給小芭比做衣服和裙子?
服裝壓膠注意事項?
題主的問題:
C語言中迴圈多少次,這個迴圈條件到底是怎麼判斷的?其實是賦值表示式的問題吧。假定題主實際關心的程式碼的for迴圈的迴圈體沒有做什麼奇怪的事情來改變迴圈次數。答案自然是0次。可以先把for迴圈解糖為while迴圈的形式:所以迴圈條件就看"i = j = 0"這個表示式的值。C語言裡,賦值運算子("=")是右結合(right-associative)的雙目運算子;賦值是一個表示式,可以用於其它表示式之中。所以等價於賦值表示式其實要完成兩件事情:賦值:將賦值運算子右邊的表示式的值賦予左邊的運算元將賦值後左邊的運算元的值當作整個表示式的值。如評論裡 @Sunchy321指正的,左邊與右邊的型別未必一樣,整個表示式的值是看左邊運算元的。所以"j = 0"作為表示式的值是0,然後"i = (j = 0)"的值也是0。所以題主的程式碼可以變為:所以迴圈0次。===========================================================手閒,順手dump個Clang給的AST好了。對這段原始碼:Clang生成的AST形如:其中題主關心的迴圈條件部分是:也就是跟i = (j = 0)等價的形式: