C++中出現的計算機術語2

C-style strings(C 風格字符串)

C 程序把指向以空字符結束的字符數組的指針視爲字符串。在 C++ 中,字符串字面值就是 C 風格字符串。C 標準庫定義了一系列處理這種字符串的庫函數,C++ 中將這些標準庫函數放在cstring 頭文件中。由於 C 風格字符串本質上容易出錯,C++程序應該優先使用 C++ 標準庫類 string 而少用 C 風格字符串。網絡程序中大量的安全漏洞都源於與使用 C 風格字符串和數組相關的缺陷。

compiler extension(編譯器擴展) 

特定編譯器爲語言添加的特性。依賴於編譯器擴展的程序很難移植到其他的編譯器。

compoundtype(複合類型)

使用其他類型定義的類型。數組、指針和引用都是複合類型。

const void*

可以指向任意 const 類型的指針類型,參見void *。

delete expression(delete 表達式)

delete 表達式用於釋放由 new 動態分配的內存: delete [] p;

在此表達式中,p 必須是指向動態創建的數組中第一個元素的指針,其中方括號必不可少:它告訴編譯器該指針指向數組,而非單個對象。C++程序使用 delete 取代 C 語言的標準庫函數 free。

dimension(維數)

數組大小。

dynamic allyallocated(動態分配的)

在程序自由存儲區中建立的對象。該對象一經創建就一直存在,直到顯式釋放爲止。

free store(自由存儲區)

程序用來存儲動態創建對象的內存區域。

heap(堆)

自由存儲區的同義詞。

new expression(new 表達式)

用於分配動態內存的表達式。下面的語句分配了一個有 n 個元素的數組:  new type[n];

該數組存放 type 類型的元素。new返回指向該數組第一個元素的指針。C++ 程序使用 new 取代 C 語言的標準庫函數 malloc。

pointer(指針)

存放對象地址的對象。

pointer arithmetic(指針算術操作)

可用於指針的算術操作。允許在指針上做加上或減去整型值的操作,以獲得當前指針之前或之後若干個元素處的地址。兩個指針可做減法操作,得到它們之間的差值。只有當指針指向同一個數組或其超出末端的位置時,指針的算術操作纔有意義。

precedence(優先級)

在複雜的表達式中,優先級確定了操作數分組的次序。

ptrdiff_t

在 cstddef 頭文件中定義的與機器相關的有符號整型,該類型具有足夠的大小存儲兩個指針的差值,這兩個指針指向同一個可能的最大數組。

size_t

在 cstddef 頭文件中定義的與機器相關的無符號整型,它具有足夠的大小存儲一個可能的最大數組。

*operator(* 操作符)

對指針進行解引用操作獲得該指針所指向的對象。解引用操作符返回左值,因此可爲其結果賦值,等效於爲該指針所指向的特定對象賦新值。

++operator(++ 操作符)

用於指針時,自增操作符給指針“加 1”,移動指針使其指向數組的下一個元素。

[]operator([] 操作符)

下標操作符接受兩個操作數:一個是指向數組元素的指針,一個是下標 n。該操作返回偏離指針當前指向 n 個位置的元素值。數組下標從 0 開始計數——數組第一個元素的下標爲 0,最後一個元素的下標是數組長度減1。下標操作返回左值,可用做賦值操作的左操作數,等效於爲該下標引用的元素賦新值。 

&operator(& 操作符)

取地址操作符需要一個操作數,其唯一的操作數必須是左值對象,該操作返回操作數對象在內存中的存儲地址。

void*

可以指向任何非 const 對象的指針類型。void*指針只提供有限的幾種操作:可用作函數形參類型或返回類型,也可與其他指針做比較操作,但是不能進行解引用

assert

一種預處理宏,使用單個表達式作爲斷言條件。如果預處理變量NDEBUG 沒有定義,則 assert 將求解它的條件表達式。若條件爲false,assert 輸出信息並終止程序的執行。

block(塊)

包含在一對花括號裏的語句序列。在語法上,塊就是單語句,可出現在任何單語句可以出現的地方。

break statement(break 語句)

一種語句,能夠終止最近的循環或者switch 語句的執行,將控制權交給被終止的循環或者 switch 後的第一條語句。

case label(case 標號)

switch 語句中跟在關鍵字 case 後的整型常量值。在同一個switch 結構中不能有任何兩個標號擁有相同的常量值。如果 switch 條件表達式的值與其中某個標號的值相等,則控制權轉移到匹配標號後面的第一條語句,從這種語句開始依次繼續各個語句,直到遇到break 或者到達

switch 結尾爲止。

catch clause(catch 子句)

一種語句,包括關鍵字 catch、圓括號內的異常說明符以及一個塊語句。catch子句中的代碼實現某種異常的處理,該異常的處理,該異常由圓括號內的異常說明符定義。

compound statement(複合語句)

塊的同義詞。 

continue statement(continue 語句)

一種語句,能夠結束最近的循環結構的當次循環迭代,將控制流轉移到 while或 do 的循環條件表達式,或者 for 語句頭中第三個表達式。 dangling else(懸垂 else) 一個通俗術語,指出如何處理嵌套 if 語句中 if 多於 else 時發生的二義性問題。C++ 中,else 總是與最近的未匹配的 if 配對。注意使用花括號能有效地隱藏內層 if,使程序員可以控制給定的else 與哪個 if 相匹配。

declaration statement(聲明語句)

定義或者聲明變量的語句。聲明已在 第二章中介紹。

default label(default 標號)

switch 語句中的一種標號,當計算 switch 條件所得的值與所有 case

標號的值都不匹配時,則執行 default 標號關聯的語句。

exception classes(異常類)

標準庫定義的一組描述程序錯誤的類。表6.1 列出了常見的異常。

exception handler(異常處理代碼)

一段代碼,用於處理程序某個部分引起的異常。是catch 子句的同義詞。

exception specifier(異常說明符)

對象或類型的聲明,用於指出當前的catch 能處理的異常類型。

expression statement(表達式語句)

一種語句,由後接分號的表達式構成。表達式語句用於表達式的求解。

flow of control(控制流)

程序的執行路徑。

goto statement(goto 語句)

一種語句,能夠使程序控制流程無條件跳轉到指定標號語句。goto擾亂了程序內部的控制流,應儘可能避免使用。 

if else statement(if else 語句)

一種語句,有條件地執行 if 或else 後的代碼,如何執行取決於條件表達式的真值。

if statement(if 語句)

基於指定條件值的條件分支語句。如果條件爲真,則執行 if語句體;否則,控制流轉到 if 後面的語句。

labeled statement(帶標號的語句)

以標號開頭的語句。標號是後面帶一個冒號的標識符。

null statement(空語句)

空白的語句。其語法形式爲單個分號。

preprocessor macro(預處理宏)

與預處理器定義的設施相似的函數。assert是一個宏。現代 C++ 程序很少使用預處理宏。

raise(引發)

常用作 throw 的同義詞。C++程序員所說的“拋出(throwing)”或者“引發(raising)”異常表示一樣的含義。

switch statement(switch 語句)

從計算關鍵字 switch 後面的表達式開始執行的條件分支語句。程序的控制流轉跳到與表達式值匹配的case 標號所標記的標號語句。如果沒有匹配的標號,則執行 default 標號標記的分支,如果沒有提供default 分支則結束 switch 語句的執行。

terminate

異常未被捕獲時調用的標準庫函數。通常會終止程序的執行。 throw expression(throw 表達式) 中斷當前執行路徑的表達式。每個throw 都會拋出一個對象,並將控制轉換到最近的可處理該類型異常的 catch 子句。

try block(try 塊)

跟在關鍵字 try 後面的塊,以及一個或多個catch 子句。如果 try 塊中的代碼產生了異常,而且該異常類型與其中某個catch 子句匹配,則執行這個 catch 子句的語句處理這個異常。否則,異常將由外圍try 塊處理,或者終止程序。

while loop(while 循環)

當指定條件爲 true 時,執行目標代碼的控制語句。根據條件的真值,目標代碼可能執行零次或多次。

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