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

2021-08-15 03:07:59 字數 1961 閱讀 3234

1、區域性變數能否和全域性變數重名?   

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

區域性變數可以與全域性變數同名,在函式內引用這個變數時,會用到同名的區域性變數,而不會用到全域性變數。對於

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

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

2、如何引用乙個已經定義過的全域性變數?   

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

3、全域性變數可不可以定義在可被多個.c檔案包含的標頭檔案中?為什麼?  

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

前提是只能有乙個c檔案中對此變數賦初值,連線才不會出錯

4、語句for( ;1 ;)有什麼問題?它是什麼意思?  

答:和while(1)相同。 

5、do……while和while……do有什麼區別?   

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

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

[cpp]view plain

copy

#include 

main()       

答:10,12,120 

7、static全域性變數與普通的全域性變數有什麼區別?static區域性變數和普通區域性變數有什麼區別?static函式與普通函式有什麼區別? 

答:static全域性變數與普通的全域性變數有什麼區別:static全域性變數只初使化一次,防止在其他檔案單元中被引用;

static區域性變數和普通區域性變數有什麼區別:static區域性變數只被初始化一次,下一次依據上一次結果值;

static函式與普通函式有什麼區別:static函式在記憶體中只有乙份,普通函式在每個被呼叫中維持乙份拷貝

(1)用static定義的全域性變數,構成靜態的全域性變數,若是乙個源程式由多個原始檔組成,一般的全域性變數在各個原始檔中都

是有效的,而用static修飾的全域性變數只在定義該變數的原始檔中是有效的,因此static限制了全域性變數的作用範圍。

(2)普通區域性變數在所在的函式每次呼叫的時候都會被重新分配儲存空間,函式結束後,就會**該儲存空間。而用static修飾的區域性變數不會,它的值始終保持著。

(3)static函式與普通函式作用域不同,它僅作用於定義它的原始檔中。

(4)儲存方式:

程式的區域性變數存在於(堆疊)中,全域性變數存在於(靜態區/全域性區)中,動態申請(new)資料存在於(堆)中。

8.對於乙個頻繁使用的短小函式,在c語言中應用什麼實現,在c++中應用什麼實現?

c用巨集定義,  #define s(a,b) a*b

c++用inline  

引入內聯函式的目的是為了解決程式中函式呼叫的效率問題。內聯函式是指用inline關鍵字修飾的函式。

任何在類的說明部分定義的 函

數都會被自動的認為是內聯函式。

它與一般函式所不同之處只在於函式呼叫的處理。

內聯函式必須是和函式體宣告在一起才有效。像這樣的申明inline tablefunction(int i)是沒有效果的,編譯器只是把函式作為普通的函式宣告,

我們必須定義函式體。

inline tablefunction(int i) ;  

這樣我們才算定義了乙個內聯函式。我們可以把它作為一般的函式一樣呼叫。

但是執行速度確比一般函式

的執行速度要快。

(c#有無內聯函式:c#就沒有標頭檔案,哪來的內聯外聯?要說內聯,應該全都是內聯,因為所有函式什麼的都定義在乙個檔案裡。存在內聯函式,但要注意,在何處內聯**的決定完全由clr做出,我們無法使用像c++中inline這樣的關鍵字來控制那些方法是內聯的。)

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

1 區域性變數能否和全域性變數重名?答 能,區域性會遮蔽全域性。要用全域性變數,需要使用 區域性變數可以與全域性變數同名,在函式內引用這個變數時,會用到同名的區域性變數,而不會用到全域性變數。對於有些編譯器而言,在同乙個函式內可以定義多個同名的區域性變數,比如在兩個迴圈體內都定義乙個同名的區域性變數...

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

1 區域性變數能否和全域性變數重名?答 能,區域性會遮蔽全域性。要用全域性變數,需要使用 區域性變數可以與全域性變數同名,在函式內引用這個變數時,會用到同名的區域性變數,而不會用到全域性變數。對於有些編譯器而言,在同乙個函式內可以定義多個同名的區域性變數,比如在兩個迴圈體內都定義乙個同名的區域性變數...

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

1 區域性變數能否和全域性變數重名?答 能,區域性會遮蔽全域性。要用全域性變數,需要使用 區域性變數可以與全域性變數同名,在函式內引用這個變數時,會用到同名的區域性變數,而不會用到全域性變數。對於有些編譯器而言,在同乙個函式內可以定義多個同名的區域性變數,比如在兩個迴圈體內都定義乙個同名的區域性變數...