區域性變數能否和全域性變數重名

2021-05-21 07:23:55 字數 1535 閱讀 3531

1樓:匿名使用者

可以重名。在程式中如果出現了相同的兩個變數,一個是區域性變數,一個是全域性變數,編譯可以通過,但是列印出的值是區域性變數的值,如果想列印全域性變數的值的話,在全域性變數之前加上「::」就可以了。

例子:#include

using namespace std;

int a;      //定義全域性變數

int main()

輸出結果為:

a = 3;

a = 2;

2樓:兔子兆鄙

1、?  答:能,區域性會遮蔽全域性。要用全域性變數,需要使用 ::

可以用引用標頭檔案的方式,也可以用extern關鍵字,如果用引用標頭檔案方式來引用某個在標頭檔案中宣告的全域性變理,假定你將那個變寫錯了,那麼在編譯期間會報錯,如果你用extern方式引用時,假定你犯了同樣的錯誤,那麼在編譯期間不會報錯,而在連線期間報錯。  3、全域性變數可不可以定義在可被多個.c檔案包含的標頭檔案中?

為什麼?  答:可以,在不同的c檔案中以static形式來宣告同名全域性變數。

  可以在不同的c檔案中宣告同名的全域性變數,前提是其中只能有一個c檔案中對此變數賦初值,此時連線不會出錯  4、語句for( ;1 ;)有什麼問題?它是什麼意思?  答:

和while(1)相同。  5、do……while和while……do有什麼區別?  答:

前一個迴圈一遍再判斷,後一個判斷以後再迴圈

6、請寫出下列**的輸出內容  #include

全域性變數(外部變數)的說明之前再冠以static 就構成了靜態的全域性變數。全域性變數本身就是靜態儲存方式, 靜態全域性變數當然也是靜態儲存方式。 這兩者在儲存方式上並無不同。

這兩者的區別雖在於非靜態全域性變數的作用域是整個源程式, 當一個源程式由多個原始檔組成時,非靜態的全域性變數在各個原始檔中都是有效的。 而靜態全域性變數則限制了其作用域, 即只在定義該變數的原始檔內有效, 在同一源程式的其它原始檔中不能使用它。由於靜態全域性變數的作用域侷限於一個原始檔內,只能為該原始檔內的函式公用, 因此可以避免在其它原始檔中引起錯誤。

從以上分析可以看出, 把區域性變數改變為靜態變數後是改變了它的儲存方式即改變了它的生存期。把全域性變數改變為靜態變數後是改變了它的作用域, 限制了它的使用範圍。  static函式與普通函式作用域不同

c語言問題 區域性變數能不能和全域性變數重名?

3樓:花落へべ若相惜

可以,只不過區域性變數可以覆蓋全域性的,就是在區域性變數的範圍內全域性變數不起作用

4樓:與子如初見

能,區域性會抄遮蔽全域性

。要用襲全域性變數,需要使用 "::" ;

區域性變數bai

可以與全域性變數同名du

,在函zhi數內引用這個變數時,會用到dao同名的區域性變數,而不會用到全域性變數。對於有些

編譯器而言,在同一個函式內可以定義多個同名的區域性變數,比如在兩個迴圈體內都定義一個同名的區域性變數,而那

個區域性變數的作用域就在那個迴圈體內。

成員變數和區域性變數區別,java全域性變數和區域性變數的區別

樓主是否對類的概念已經清楚了?如果是的話,就很好解釋了。成員變數是類的一個組成部分,和類的方法處於同一級別 而區域性變數是為了讓方法 功能正常執行設立的一些臨時儲存單元,是專門服務於方法的。從概念上說,兩者是完全沒有關係的,但從應用上說,成員變數可能臨時做為區域性變數存在,而區域性變數也可能依賴或者...

易語言中變數全域性變數區域性變數常量之間有什麼區別

全域性變數就是整個程式都可以用的,比如你在子程式.按鈕1 被單擊下 建了一個變數a,在按鈕1下可以呼叫 但是到了.子程式 編輯框1 內容被改變 這個子程式下如果輸入變數a也可以呼叫的 區域性變數就是隻有一個子程式下可以使用的變數 就比如說這個變數a在 子程式.按鈕1 被單擊下 建立了,在.子程式 編...

C語言中的全域性變數和區域性變數分別是指什麼

解答問題前,先說明一下,當全域性變數和區域性變數同名時,要看當前 所處的作用域,預設使用當前作用域內的同名區域性變數。分析你所提供的 include int a 4 全域性變數 int f int n else return t a 此外的a是指f函式作用域內的靜態區域性變數,每次f函式呼叫retu...