c語言復合語句問題,為什麼ab是復合語句中的22,而c為主語句的150呢,高手請指教

時間 2022-04-06 14:50:13

1樓:匿名使用者

因為你在復合語句中宣告了乙個區域性變數c,它會隱藏外層的區域性變數,內部的區域性變數被修改為22,但是外部的區域性變數的值還是150,在復合語句結束之後,之前的內層的區域性變數c就消失了,現在只剩下外層的變數c,也就是第一次定義的變數。它的值為150,而變數a,b一直是乙個變數,不存在同變數c一樣的問題。

不知道說明吧沒有

2樓:聽不清啊

前面兩個printf語句的輸出都沒有問題。

這圖中一定是少掉了什麼語句吧?

要不最後二個printf語句之間沒有任何的語句改變c的值,怎麼會發生改變呢?

3樓:記住一座城

因為在復合語句中,你定義了變數c,所以在該語句塊中,對變數c的任何操作都是針對復合語句中的c進行的,不影響全域性的c,至於a,b是全域性的,當然會受影響,我以前學c語言的時候,用的編譯器不支援在復合語句內定義變數,定義變數必須在函式開始處定義。

4樓:匿名使用者

b=22,c=a=b,所以c=22,b=22,a=22

第二個{}中c重新定義了,為區域性變數只在本{}中起作用,所以到{}外後c為主程式中定義的值,而b只有乙個定義,所以內外一樣,

5樓:

你把那個大括號去掉,在一般的編譯器中是不能在中間在定義變數的,這個我也是第一次遇見,大括號應該有函式的意思,括號裡的c把main函式中的c替換了,退出括號又是原來的c。我也不知道對不對,經驗告訴我要這樣理解。你玩出新花樣了,呵呵

6樓:89劉立勇

因為c在中括號中變成區域性變數,只在中括號中起作用,出來中括號,還是以前面定義的覆蓋它

為什麼c語言中 ab是 ab不是 ab

空翎人 因為自加自減的優先順序比算術運算子高,所以先算a 因為a在b前面,所以先算a, 小成要吃糖 c語言運算子有優先順序的。 你好!1 等號是賦值運算,這就意味著等號左邊必須是被賦值的變數,顯然a 7是表示式,而不是變數。2 整形運算是隻取整數部分的,你定義的c1,c2,c3均是整數,所以 c3 ...

超難C語言設計問題,為什麼C語言比較難學? 10

我暈!你能多給點分嗎?為什麼c語言比較難學?10 不是啦!c語言入門還是比較容易的,很多人都說c語言是高階語言中的低階語言,是應為它可以直接接觸到底層的東西,如直接讀寫記憶體等,也正因此c語言也是一種很靈活的語言。也許難就難在它的靈活性上吧。 我就學不來,為了學c語言我大學報了補習班,但是2次考試都...

C語言問題為啥會出錯,c語言執行出錯什麼原因

陽光的雷咩咩 printf d z 璐人釔 printf d z 這樣 c語言執行出錯什麼原因 歡樂多 for i 0,sum 0 i 10 i,sum i 另外main 打錯了 編譯沒有錯是因為你寫的mian函式的語句符合c規範,而連結有錯誤是因為c必須有一個入口函式或叫主函式main 而你這裡卻...