<address id="ousso"></address>
<form id="ousso"><track id="ousso"><big id="ousso"></big></track></form>
  1. C語言

    C/C++面試常考關鍵字總結

    時間:2025-04-03 08:34:21 C語言 我要投稿
    • 相關推薦

    C/C++面試常考關鍵字總結

      C語言對于學習編程的小伙伴來說,是一種必須學習的基礎。下面是小編為大家整理出來的有關于C/C++面試常考關鍵字總結,希望可以幫助到大家!

    C/C++面試常考關鍵字總結

      1.static關鍵字的作用?

      1)、static 申明的變量為靜態全局變量,該變量存儲在靜態數據區,當整個程序結束時該變量才會被釋放,只是生命周期延長,作用域不受影響。

      2)、static申明的變量定義時如果不初始化默認初始化為0

      3)、被static修飾的變量只能作用于本文件內,即使被extern修飾也不行

      2.const,define的區別

      1)、const修飾的變量為只讀變量,定義一個const類型的變量時必須完成初始化

      2)、define意為宏定義一個常量,給某個命名變量宏定義一個確定的數值,在預編譯期間將會完成一個替換的動作,用宏定義的值替換給變量名。

      3)、const也可以修飾函數的參數列表以及函數的返回值,參數返回值被const修飾代表參數和返回值均不能被改變。

      4)、const修飾的變量可以通過強制類型轉換轉為非const

      5)、const修飾的成員變量只能在構造函數的初始化列表進行初始化。并且不能修改

      6)、const修飾成員函數,該成員函數不能修改任何成員變量的值

      7)、const修飾對象:該對象中所有的成員都變成只讀,而且該對象的所以成員函數都必須被const修飾。

      3.new/ ,malloc/free的區別

      (1)new/ malloc/free都是用來動態申請內存空間的 ,兩組必須成對使用。

      (2)new/為運算符,malloc/free為庫函數需要頭文件

      (3)new/為對象申請釋放內存會調用相應的構造函數和析構函數 malloc/free則不會

      (4)new有數據類型的檢查,是類型安全的,malloc無數據類型的檢查返回值為void*

      (5)new申請內存空間必須指明要存放的數據類型和要存放對象的數目,malloc只需要指明申請空間的大小,可以通過顯示地強制類型轉換改變返回值的數據類型

      4.auto(C++)

      auto申明的變量必須初始化,程序會根據初始化的值的數據類型來自動確定該變量的數據類型。

      5.指針和引用的區別

      (1)指針和引用都是通過地址索引數據的。

      (2)指針存放的是變量的地址,引用是變量的別名。

      (3)指針也是一個變量需要占用4個字節(32位機器)的內存空間,引用不需要占用內存,它只是變量的一個別名。

      5.面向對象和面向過程

      面向對象:面向主要是以目標對象為研究體,這一思想的實現需要對各種不同屬性的類進行封裝,進而分析每種類型事物的屬性和功能方法,

      這種思想將計算機軟件系統與外界系統一一對應,進行有針對性的研究。核心在于 (對象 + 消息)

      面向過程:C語言是面向過程的編程語言,這種思想主要是為了去實現某種功能或目標去一步步研究算法流程,步步求精,

      進而用一種最為簡捷的過程來實現最終的目標,核心為 (算法+數據)

      6. static修飾類的成員變量和成員函數

      (1)static修飾的成員變量屬于這個類,不屬于某個對象。

      (2)static修飾的成員變量需要在類外進行初始化。

      (3)static修飾的成員函數只能訪問static修飾的成員變量,不能訪問普通成員變量。

      (4)static修飾的成員函數沒有this指針。

      (5)基類static修飾的成員變量繼承給子類也只存在一份,基類和派生類共享該成員。

      (6)類內部可以定義靜態的類對象成員,即 可以定義static修飾的類對象

      // public:static base A; (正確) public: base A; (錯誤)

      7.mutable關鍵字

      被mutable修飾的成員變量,是可變的,可以修改的,即使某個對象是const類型,該成員變量也可以被修改。在被const修飾的成員函數中該變量也可以被修改。

      8.explicit:

      只能修飾構造函數,防止單參數的構造函數隱式類型轉換,把一個常量轉換成一個對象。

      在沒有加explicit之前,可以把一個常量賦給一個對象。

      推薦構造函數前最好加explict

      9.volitile:

      該關鍵字意思為易變的,因為有些時候某個變量容易被改變,所以我們需要讀取當前該變量最新的數據,不需要編譯器做優化處理。

      主要用于多線程中。volatile提醒編譯器它后面所定義的變量隨時都有可能改變,因此編譯后的程序每次需要存儲或讀取這個變量的時候,都會直接從變量地址中讀取數據。如果沒有volatile關鍵字,則編譯器可能優化讀取和存儲,可能暫時使用寄存器中的值,如果這個變量由別的程序更新了的話,將出現讀取數據不一致的現象。

    【C/C++面試常考關鍵字總結】相關文章:

    C/C++面試常考關鍵字09-20

    c++中const關鍵字11-03

    register關鍵字在c語言和c++中的差異09-23

    C/C++內存管理09-20

    Java與C/C++的區別06-18

    C/C++函數調用的方式07-29

    C語言和C++的分別06-18

    C和C++的關系解說10-12

    C語言和C++的區別09-19

    <address id="ousso"></address>
    <form id="ousso"><track id="ousso"><big id="ousso"></big></track></form>
    1. 日日做夜狠狠爱欧美黑人