關於C++基礎知識,你必須知道這些專業術語(2)

道阻且長,行則將至。埋頭苦幹,不鳴則已,一鳴驚人!加油,騷年!

前言

  根據《C++ Primer》,第二章《變量和基本類型》總結而來;

  提示:善於利用 Ctrl + F 快捷鍵,快速搜索相關內容哦!

1 本章小結

  1. 類型是 C++ 編程的基礎;
  2. 類型規定了其對象的存儲要求和所能執行的操作;
  3. 類型分爲非常量和常量,常量對象必須初始化,而且一旦初始化其值就不能再改變;
  4. 此外,還可以定義複合類型,如指針和引用等;複合類型的定義以其他類型爲基礎;
  5. C++ 語言允許用戶以類的形式自定義類型。C++ 庫通過類提供了一套高級抽象類型,如輸入輸出和 string 等。

2 術語表正文

  • 地址(address) :是一個數字,根據它可以找到內存中的一個字節。

  • 別名聲明(alias declaration) :爲另外一種類型定義一個同義詞:使用 “名字 = 類型” 的格式將名字作爲該類型的同義詞。

  • 算數類型(arithmetic type) :布爾值、字符、整數、浮點數等內置類型。

  • 數組(array) :是一種數據結構,存放着一組未命名的對象,可以通過索引來訪問這些對象。

  • auto :是一個類型說明符,通過變量的初始值來推斷變量的類型。

  • 基本類型(base type) :是類型說明符,可以用 const 修飾,在聲明語句中位於聲明符之前。基本類型提供了最常見的數據類型,以此爲基礎構建聲明符。

  • 綁定(bind) :令某個名字與給定的實體關聯在一起,使用該名字也就是使用該實體。例如,引用就是將某個名字與某個對象綁定在一起。

  • 字節(byte) :內存中可尋址的最小單元,大多數機器的字節佔8位。

  • 類成員(class member) :類的組成部分。

  • 複合類型(compound type) :是一種類型,它的定義以其他類型爲基礎。

  • const :是一種類型修飾符,用於說明永不改變的對象。const 對象一旦定義就無法再賦新值,所以必須初始化。

  • 常量指針(const pointer) :是一種指針,它的值永不改變。

  • 常量引用(const reference) :是一種習慣叫法,含義是指向常量的引用。

  • 常量表達式(const expression) :能在編譯時計算並獲取結果的表達式。

  • constexpr :是一種函數,用於代表一條常量表達式。

  • 轉換(conversion) :一種類型的值轉變成另外一種類型值的過程。C++ 語言支持內置類型之間的轉換。

  • 數據成員(data member) :組成對象的數據元素,類的每個對象都有類的數據成員的一份拷貝。數據成員可以在類內部聲明的同時初始化。

  • 聲明(declaration) :聲稱存在一個變量、函數或是別處定義的類型。名字必須在定義或聲明之後才能使用。

  • 聲明符(declarator) :是聲明的一部分,包括被定義的名字和類型修飾符,其中類型修飾符可以有也可以沒有。

  • decltype :是一個類型說明符,從變量或表達式推斷得到類型。

  • 默認初始化(default initialization) :當對象未被顯式地賦予初始值時執行的初始化行爲。由類本身負責執行的類對象的初始化行爲。全局作用域的內置類型對象初始化爲 0;局部作用域的對象未被初始化即擁有未定義的值。

  • 定義(definition) :爲某一特定類型的變量申請存儲空間,可以選擇初始化該變量。名字必須在定義或聲明之後才能使用。

  • 轉義序列(escape sequence) :字符特別是那些不可打印字符的替代形式。轉義以反斜線開頭,後面緊跟一個字符,或者不多於 3 個八進制數字,或者字母 x 加上 1 個十六進制數。

  • 全局作用域(global scope) :位於其他所有作用域之外的作用域。

  • 頭文件保護符(header guard) :使用預處理變量以防止頭文件被某個文件重複包含。

  • 標識符(identifier) :組成名字的字符序列,標識符對大小寫敏感。

  • 類內初始值(in-class initializer) :在聲明類的數據成員時同時提供的初始值,必須置於等號右側或花括號內。

  • 在作用域內(in scope) :名字在當前作用域內可見。

  • 被初始化(initialized) :變量在定義的同時被賦予初始值,變量一般都應該被初始化。

  • 內層作用域(inner scope) :嵌套在其他作用域之內的作用域。

  • 整形(integral type) :參見算術類型。

  • 列表初始化(list initialization) :利用花括號把一個或多個初始值放在一起的初始化形式。

  • 字面值(literal) :是一個不能改變的值,如數字、字符、字符串等。單引號內的是字符字面值,雙引號內的是字符串字面值。

  • 局部作用域(local scope) :是塊作用域的習慣叫法。

  • 底層 const (low-level const) :一個不屬於頂層的 const ,類型如果由底層常量定義,則不能被忽略。

  • 成員(member) :類的組成部分。

  • 不可打印字符(nonprintable character) :不具有可見形式的字符,如控制符、退格、換行符等。

  • 空指針(null pointer) :值爲 0 的指針,空指針合法但是不指向任何對象。

  • nullptr :是表示空指針的字面值常量。

  • 對象(object) :是內存的一塊區域,具有某種類型,變量是命名了的對象。

  • 外層作用域(outer scope) :嵌套着別的作用域的作用域。

  • 指針(pointer) :是一個對象,存放着某一個對象的地址,或者某個對象存儲區域之後的下一地址,或者 0 。

  • 指向常量的指針(pointer to const) :是一個指針,存放着某個常量對象的地址。指向常量的指針不能用來改變它所指對象的值。

  • 預處理器(preprocessor) :在 C++ 編譯過程中執行的一段程序。

  • 預處理變量(preprocessor variable) :由預處理器管理的變量。在程序編譯之前,預處理器負責將程序中的預處理變量替換成它的真實值。

  • 引用(reference) :是某個對象的別名。

  • 對常量的引用(reference to const) :是一個引用,不能用來改變它所綁定對象的值。對常量的引用可以綁定常量對象,或者非常量對象,或者表達式的結果。

  • 作用域(scope) :是程序的一部分,在其中某些名字有意義。C++ 有幾級作用域:

    • 全局(global) :名字定義在所有其他作用域之外。
    • 類(class) :名字定義在類內部。
    • 命名空間(namespace) :名字定義在命名空間內部。
    • 塊(block) :名字定義在塊內部。

  名字從聲明位置開始直至聲明語句所在的作用域末端爲止都是可用的。

  • 分離式編譯(separate compilation) :把程序分割爲多個單獨文件的能力。

  • 帶符號類型(signed) :保存正數、負數或 0 的整型。

  • 字符串(string) :是一種庫類型,表示可變長字符序列。

  • struct :是一個關鍵字,用於定義類。

  • 臨時值(temporary) :編譯器在計算表達式結果時創建的無名對象。爲某表達式創建了一個臨時值,則此臨時值將一直存在直到包含有該表達式的最大的表達式計算完成爲止。

  • 頂層 const (top-level const) :是一個 const ,規定某對象的值不能改變。

  • 類型別名(type alias) :是一個名字,是另外一個類型的同義詞,通過關鍵字 typedef 或別名聲明語句來定義。

  • 類型檢查(type checking) :是一個過程,編譯器檢查程序使用某給定類型對象的方式與該類型的定義是否一致。

  • 類型說明符(type specifier) :類型的名字。

  • typedef :爲某類型定義一個別名。當關鍵字 typedef 作爲聲明的基本類型出現時,聲明中定義的名字就是類型名。

  • 未定義(undefined) :即 C++ 語言沒有明確規定的情況。不論是否有意爲之,未定義行爲都可能引發難以追蹤的運行時錯誤、安全問題和可移植性問題。(舉例:vector向量使用 v[],如果下標越界,則函數行爲未定義;但是使用 v.at(),雖然也有錯誤,但是會拋出異常)

  • 未初始化(uninitialized) :變量已定義但未被賦予初始值。一般來說,試圖訪問未初始化變量的值將引發未定義行爲。

  • 無符號類型(unsigned) :保存大於等於 0 的整型。

  • 變量(variable) :命名的對象或引用。C++ 語言要求變量要先聲明後使用。

  • void* :可以指向任意非常量的指針類型,不能執行解引用操作。

  • void 類型 :是一種有特殊用處的類型,既無操作也無值。不能定義一個 void 類型的變量。

  • 字(Word) :在指定機器上進行整數運算的自然單位。一般來說,字的空間足夠存放地址。32 位機器上的字通常佔據 4 個字節。

  • & 運算符(& operator) :取地址運算符。

  • * 運算符(* operator) :解引用運算符。解引用一個指針將返回該指針所指的對象,爲解引用的結果複製也就是爲指針所指的對象賦值。

  • #define :是一條預處理指令,用於定義一個預處理變量。

  • #endif :是一條預處理指令,用於結束一個 #ifdef 或 #ifndef 區域。

  • #ifdef :是一條預處理指令,用於判斷給定的變量是否已經定義。

  • #ifndef :是一條預處理指令,用於判斷給定的變量是否尚未定義。

如果文章內容有誤,麻煩評論/私信多多指教,謝謝!如果覺得文章內容還不錯,留個讚唄,您的點贊就是對我最大的鼓勵,謝謝您嘞!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章