這里我兩次重新定義 int*型別的Q變數,dev-C 報錯,說不能重新定義。[/color]

[color=#000080]下圖所示教學視頻里的程式,兩次定義 int*型別的p變數,不報錯,這是為什么呢? 都是多次定義變數,我覺得下面的寫法應該報錯,但是卻沒報錯……

我覺得應該改寫成下面這樣,這樣不會報錯,也好看。請各位老大哥,解釋一下,小弟不勝感激,自學的我太慢了,模電,數電,單片機……以后做什么呢……
uj5u.com熱心網友回復:
因為他在{} 里面,涉及到一個變數隱藏,區域變數重新定義會隱藏開頭的那個變數。你兩個變數同一個區域,沒法隱藏,所以報錯uj5u.com熱心網友回復:
這是一個作用域的問題不同作用域相同符號表達不同物體 是允許的
把這句話套到你的代碼里面
出現錯誤就是在一個作用域里面有定義了相同符號
沒出現錯誤就是相同符號出現在不同作用域
uj5u.com熱心網友回復:
lz應該先找本入門級的書學習一下變數的作用域范圍方面的知識uj5u.com熱心網友回復:
復合陳述句包起來的范圍是 塊作用域兩個p定義在不同的塊作用域 這是合法的
uj5u.com熱心網友回復:
因為p是在代碼塊里,作用域是代碼塊內可見;而Q的作用域是main函式可見,所以是重定義。p在for回圈里,在回圈里是可見和使用沒問題,出了代碼塊(回圈)就不認識了。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/99266.html
標籤:C語言
上一篇:求大佬用哈希表的方法給我解這道題
下一篇:環形鏈表(大佬幫忙看看錯誤)
