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

2021-03-04 00:14:18 字數 1540 閱讀 4206

1樓:花落へべ若相惜

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

2樓:與子如初見

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

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

區域性變數bai

可以與全域性變數同名du

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

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

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

「區域性變數」能否和「全域性變數」重名?

3樓:匿名使用者

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

例子:#include

using namespace std;

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

int main()

輸出結果為:

a = 3;

a = 2;

4樓:兔子兆鄙

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

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

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

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

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

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

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

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

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

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

JSP中區域性變數和全域性變數的作用範圍

jsp中的區域性和全域性變數定義方法 全域性變數的定義方法 變數型別 變數名 如,定義一個int型的全域性變數a寫法如下 int a 區域性變數定義方法 變數型別 變數名 如,定義一個string型的區域性變數b寫法如下 string sign 1 其實你換種方式看,jsp最終會轉譯成servelt...

C語言中,const如何修飾全域性變數 區域性變數?有什麼好處

const主要是為了程式的健壯型,減少程式出錯.最基本的用法 const int a 100 b的內容不變,b只能是100也就是宣告一個int型別的常量 define b 100 int const b 100 和上面作用一樣 const指標和引用一般用在函式的引數中 int m a 出錯,常量只能...

C語言關於全域性變數問題50分

因為你的 int pf int x,int n 函式返回的是陣列指標,如果k定義為區域性的話,等函式返回後,k已經銷燬了,所以結果不正確,如果非要定義成區域性的話,那麼用malloc分配記憶體即可。1.加標頭檔案 include 2.在int pf int x,int n 函式中新增int k in...