面試題之二

2021-06-28 21:22:50 字數 779 閱讀 5909

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

1) 全域性變數(外部變數)的書名之前再冠以static就構成了靜態的全域性變數. 全域性變數本身就是靜態儲存方式, 靜態全域性變數當然也是靜態儲存方式. 這兩者在儲存方式上並無不同. 這兩者的區別在於非靜態全域性變數的作用域是整個源程式, 當乙個源程式由多個原始檔組成時, 非靜態的全域性變數在各個原始檔都是有效的. 而靜態全域性變數則限制了其作用域,  即只是在定義該變數的原始檔內有效, 在同一源程式的其他原始檔中不能使用它. 由於靜態全域性變數的作用域侷限於乙個原始檔內, 只能為該原始檔內的函式公用, 因此可以避免在其它原始檔中引起錯誤.

2) 把區域性變數改變成靜態變數後是改變了它的儲存方式即改變了它的生存期. 把全域性變數改為靜態變數後是改變它的作用域, 限制了它的使用範圍.

3) static函式與普通函式作用域不同, 僅在本檔案. 只在當前原始檔中使用的函式應該說明為內部函式(static), 內部函式應該在當前原始檔中說明和定義. 對於可在當前原始檔以外使用的函式, 應該在乙個標頭檔案中說明, 要使用這些函式的原始檔要包含這個標頭檔案.

static全域性變數與普通的全域性變數區別:

static全域性變數只初始化一次, 防止在其他檔案單元中被引用; 

static區域性變數和普通的區域性變數有什麼區別:

static區域性變數只初始化一次, 下一次依據上一次結果值; 

static函式與普通函式有什麼區別: 

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

Java面試題之二

六 string s new string xyz 建立了幾個string object?二者之間有什麼區別?嚴格的說應該是乙個或者兩個。因為如果常量池之前沒有 xyz 這個物件,那麼它首先會在常量池裡面建立乙個 xyz 物件。如果之前常量池就已經有乙個 xyz 物件了,那麼就不會在常量池裡面再建立...

SQL面試題目之二

查詢某員工的領導 select from emp start with mgr 7902 connect by prior mgr empno 以下摘自 url 今天發現在oracle中的select語句可以用start with.connect by prior子句實現遞迴查詢,connect b...

生成器面試題之二

l for i in xrange 10 print ll a for i in xrange 10 a num i print l 輸出結果 python 第一段 解答 以上兩段 的本質區別是第乙個是直接傳物件,第二個是傳物件的引用。第一段 給列表新增,是直接新增字典物件,for迴圈中每次新增的物...