天天看點

c語言面試題總結

1.冠以static關鍵字的全局變量、局不變量、函數與普通的全局變量、局不變量、函數的差別?

首先,我們來說static全局變量和普通全局變量的相同與不同,普通的全局變量與static全局變量都是以靜态存儲方式存儲在棧區的,這是2者的相同點,而不同在于普通的全局變量的作用域是整個程式,而被static修飾的全局變量的作用域隻在聲明該變量的檔案中。

其次,static局部變量和普通局部變量的差別:static局部變量隻會被程式初始化一次,下一次使用維持上一次的值不變,(即在某種意義上改變了該局部變量的生命周期)而普通的局部變量出了函數即會被釋放掉,下次使用重新配置設定。

最後,聲明為static的函數,其作用域也會被限定在該檔案中,(即在程式中隻維持該函數的一份拷貝)而普通的函數作用域被限定為 #include、#import的檔案中都可以使用。

2.如何引用一個已經定義過的全局變量?

有倆種方式:1、引用頭檔案

      2、使用extern關鍵字

差別:第一種方式引用的話,如果有錯誤,在編譯期會提示錯誤;第二種方式的話,如果有錯誤,在連接配接期才會提示錯誤。