C語言面試題,需要準備面試,以後走C/C++程式設計師這條路的小夥伴建議收藏起來~
變量/函數Ans的聲明和定義之間有什麼區別?
答:變量/函數的聲明僅聲明變量/函數存在於程序中的某個位置,但未為其分配內存。但是變量/函數的聲明起著重要的作用。這就是變量/函數的類型。因此,在聲明變量時,程序會知道該變量的數據類型。在聲明函數的情況下,程序知道該函數的參數是什麼,它們的數據類型,參數的順序和函數的返回類型。這就是聲明。關於定義,當我們定義變量/函數時,除了聲明的作用外,它還為該變量/函數分配內存。因此,我們可以將定義視為聲明的超集。(或聲明作為定義的子集)。
//這只是聲明。y未通過此語句
extern int y分配內存;
//這既是聲明又是定義,此語句分配給x的內存。
int x;
C中有哪些不同的存儲類說明符?
答:自動,註冊,靜態,外部
變量的範圍是什麼?變量在C中的作用域如何?
回答:變量的範圍是程序的一部分,可以直接訪問該變量。在C語言中,所有標識符都在詞法(或靜態)範圍內。
沒有分號,您將如何列印「 Hello World」?
答:
什麼時候應該在C程序中使用指針?
1.獲取變量的地址
2.為了在C中實現引用傳遞:指針允許不同的函數共享和修改其局部變量。
3.通過大型結構,以便避免完整複製結構。
4.實現「連結」數據結構,例如連結列表和二叉樹。
什麼是NULL指針?
回答: NULL用於指示指針未指向有效位置。理想情況下,如果在聲明時不知道指針的值,則應將指針初始化為NULL。另外,當指針所指向的內存在程序中間被釋放時,我們應該使指針為NULL。
什麼是懸空指針?
回答:懸空指針是沒有指向有效內存位置的指針。當刪除或釋放對象時,如果不修改指針的值,就會出現懸掛指針,因此指針仍然指向釋放後的內存的存儲位置。以下是示例。
什麼是內存洩漏?為何應避免使用它
答:程式設計師在堆中創建內存而忘記刪除它時,就會發生內存洩漏。對於諸如守護程序和伺服器之類的程序而言,內存洩漏是特別嚴重的問題,根據定義它們永遠不會終止。
什麼是局部靜態變量?它們有什麼用?
回答:局部靜態變量是一個變量,其生存期並不以聲明它的函數調用結尾。它延長了整個程序的壽命。所有對該函數的調用都共享局部靜態變量的相同副本。靜態變量可用於計算調用函數的次數。另外,靜態變量的默認值為0。例如,以下程序輸出「 0 1」
什麼是靜態函數?它們有什麼用?
回答:在C語言中,默認情況下函數是全局的。函數名稱前的「 static」關鍵字使其變為靜態。與C中的全局函數不同,對靜態函數的訪問僅限於聲明它們的文件。因此,當我們想限制對函數的訪問時,我們將它們設為靜態。使函數成為靜態的另一個原因可能是在其他文件中重用了相同的函數名。