天天看點

C語言32個關鍵字與C++62個關鍵字詳解C語言32個關鍵字C++62個關鍵字

C語言32個關鍵字

關鍵字 說明
auto 聲明自動變量
short 聲明短整型變量或函數
int 聲明整型變量或函數
long 聲明長整型變量或函數
float 聲明浮點型變量或函數
double 聲明雙精度變量或函數
char 聲明字元型變量或函數
struct 聲明結構體變量或函數
union 聲明共用資料類型
enum 聲明枚舉類型
typedef 用以給資料類型取别名
const 聲明隻讀變量
unsigned 聲明無符号類型變量或函數
signed 聲明有符号類型變量或函數
extern 聲明變量是在其他檔案正聲明
register 聲明寄存器變量
static 聲明靜态變量
volatile 說明變量在程式執行中可被隐含地改變
void 聲明函數無傳回值或無參數,聲明無類型指針
if 條件語句
else 條件語句否定分支(與 if 連用)
switch 用于開關語句
case 開關語句分支
for 一種循環語句
do 循環語句的循環體
while 循環語句的循環條件
goto 無條件跳轉語句
continue 結束目前循環,開始下一輪循環
break 跳出目前循環
default 開關語句中的“其他”分支
sizeof 計算資料類型長度
return 子程式傳回語句(可以帶參數,也可不帶參數)循環條件

C++62個關鍵字

C語言32個關鍵字與C++62個關鍵字詳解C語言32個關鍵字C++62個關鍵字

1. asm

asm (指令字元串):允許在 C++ 程式中嵌入彙編代碼。

2. auto

auto(自動,automatic)是存儲類型辨別符,表明變量"自動"具有本地範圍,塊範圍的變量聲明(如for循環體内的變量聲明)預設為auto存儲類型。

3. bool

bool(布爾)類型,C++ 中的基本資料結構,其值可選為 true(真)或者 false(假)。C++ 中的 bool 類型可以和 int 混用,具體來說就是 0 代表 false,非 0 代表 true。bool 類型常用于條件判斷和函數傳回值。

4. break

break(中斷、跳出),用在switch語句或者循環語句中。程式遇到 break 後,即跳過該程式段,繼續後面的語句執行。

5. case

用于 switch 語句中,用于判斷不同的條件類型。

6. catch

catch 和 try 語句一起用于異常處理。

7. char

char(字元,character)類型,C++ 中的基本資料結構,其值一般為 0~255 的 int。這 256 個字元對應着 256 個 ASCII 碼。char 類型的資料需要用單引号 ' 括起來。

8.class

class(類)是 C++ 面向對象設計的基礎。使用 class 關鍵字聲明一個類。

9. const

const(常量的,constant)所修飾的對象或變量不能被改變,修飾函數時,該函數不能改變在該函數外面聲明的變量也不能調用任何非const函數。在函數的聲明與定義時都要加上const,放在函數參數清單的最後一個括号後。在 C++ 中,用 const 聲明一個變量,意味着該變量就是一個帶類型的常量,可以代替 #define,且比 #define 多一個類型資訊,且它執行内連結,可放在頭檔案中聲明;但在 C 中,其聲明則必須放在源檔案(即 .C 檔案)中,在 C 中 const 聲明一個變量,除了不能改變其值外,它仍是一具變量。如:

const double pi(3.14159);
或 
const double pi = 3.14159;      

10. const_cast用法:

const_cast<type_id> (expression)      

該運算符用來修改類型的 const 或 volatile 屬性。除了 const 或 volatile 修飾之外, type_id 和 expression 的類型是一樣的。常量指針被轉化成非常量指針,并且仍然指向原來的對象;常量引用被轉換成非常量引用,并且仍然指向原來的對象;常量對象被轉換成非常量對象。

11. continue

continue(繼續)關鍵字用于循環結構。它使程式跳過代碼段後部的部分,與 break 不同的是,continue 不是進入代碼段後的部分執行,而是重新開始新的循環。因而它是"繼續循環"之意,不是 break(跳出)。

12. default

default(預設、預設)用于 switch 語句。當 switch 所有的 case 都不滿足時,将進入 default 執行。default 隻能放在 switch 語句所有的 case 之後,并且是可選的。

13. delete

delete(删除)釋放程式動态申請的記憶體空間。delete 後面通常是一個指針或者數組 [],并且隻能 delete 通過 new 關鍵字申請的指針,否則會發生段錯誤。

14. do

do-while是一類循環結構。與while循環不同,do-while循環保證至少要進入循環體一次。

15. double

double(雙精度)類型,C++ 中的基本資料結構,以雙精度形式存儲一個浮點數。

16. dynamic_cast

dynamic_cast(動态轉換),允許在運作時刻進行類型轉換,進而使程式能夠在一個類層次結構安全地轉換類型。dynamic_cast 提供了兩種轉換方式,把基類指針轉換成派生類指針,或者把指向基類的左值轉換成派生類的引用。

17. else

else 緊跟在 if 後面,用于對 if 不成立的情況的選擇。

18. enum

enum(枚舉)類型,給出一系列固定的值,隻能在這裡面進行選擇一個。

19. explicit

explicit(顯式的)的作用是"禁止單參數構造函數"被用于自動型别轉換,其中比較典型的例子就是容器類型。在這種類型的構造函數中你可以将初始長度作為參數傳遞給構造函數。

20. export

為了通路其他編譯單元(如另一代碼檔案)中的變量或對象,對普通類型(包括基本資料類、結構和類),可以利用關鍵字 extern,來使用這些變量或對象時;但是對模闆類型,則必須在定義這些模闆類對象和模闆函數時,使用标準 C++ 新增加的關鍵字 export(導出)。

21. extern

extern(外部的)聲明變量或函數為外部連結,即該變量或函數名在其它檔案中可見。被其修飾的變量(外部變量)是靜态配置設定空間的,即程式開始時配置設定,結束時釋放。用其聲明的變量或函數應該在别的檔案或同一檔案的其它地方定義(實作)。在檔案内聲明一個變量或函數預設為可被外部使用。在 C++ 中,還可用來指定使用另一語言進行連結,這時需要與特定的轉換符一起使用。目前僅支援 C 轉換标記,來支援 C 編譯器連結。使用這種情況有兩種形式:

extern "C" 聲明語句

extern "C" { 聲明語句塊 }      

22. false

false(假的),C++ 的基本資料結構 bool 類型的值之一。等同于 int 的 0 值。

23. float

float(浮點數),C++ 中的基本資料結構,精度小于 double。

24. for

for 是 C++ 中的循環結構之一。

25. friend

friend(友元)聲明友元關系。友元可以通路與其有 friend 關系的類中的 private/protected 成員,通過友元直接通路類中的 private/protected 成員的主要目的是提高效率。友元包括友元函數和友元類。

26. goto

goto(轉到),用于無條件跳轉到某一标号處開始執行。

27. if

if(如果),C++ 中的條件語句之一,可以根據後面的 bool 類型的值選擇進入一個分支執行。

28. inline

inline(内聯)函數的定義将在編譯時在調用處展開。inline 函數一般由短小的語句組成,可以提高程式效率。

29. int

int(整型,integer),C++ 中的基本資料結構,用于表示整數,精度小于 long。

30. long

long(長整型,long integer),C++ 中的基本資料結構,用于表示長整數。

31. mutable

mutable(易變的)是 C++ 中一個不常用的關鍵字。隻能用于類的非靜态和非常量資料成員。由于一個對象的狀态由該對象的非靜态資料成員決定,是以随着資料成員的改變,對像的狀态也會随之發生變化。如果一個類的成員函數被聲明為 const 類型,表示該函數不會改變對象的狀态,也就是該函數不會修改類的非靜态資料成員。但是有些時候需要在該類函數中對類的資料成員進行指派,這個時候就需要用到 mutable 關鍵字。

32. namespace

namespace(命名空間)用于在邏輯上組織類,是一種比類大的結構。

33. new

new(建立)用于建立一個對象。new 運算符總是傳回一個指針。由 new 建立

34. operator

operator(操作符)用于操作符重載。這是 C++ 中的一種特殊的函數。

35. private

private(私有的),C++ 中的通路控制符。被标明為 private 的字段隻能在本類以及友元中通路。

36. protected

protected(受保護的),C++ 中的通路控制符。被标明為 protected 的字段隻能在本類以及其繼承類和友元中通路。

37. public

public(公有的),C++ 中的通路控制符。被标明為 public 的字段可以在任何類

38.register

register(寄存器)聲明的變量稱着寄存器變量,在可能的情況下會直接存放在機器的寄存器中;但對 32 位編譯器不起作用,當 global optimizations(全局優化)開的時候,它會做出選擇是否放在自己的寄存器中;不過其它與 register 關鍵字有關的其它符号都對32位編譯器有效。

39. reinterpret_cast

用法:

reinpreter_cast<type-id> (expression)      

type-id 必須是一個指針、引用、算術類型、函數指針或者成員指針。它可以把一個指針轉換成一個整數,也可以把一個整數轉換成一個指針(先把一個指針轉換成一個整數,在把該整數轉換成原類型的指針,還可以得到原先的指針值)。

40. return

return(傳回)用于在函數中傳回值。程式在執行到 return 語句後立即傳回,return 後面的語句無法執行到。

41. short

short(短整型,short integer),C++ 中的基本資料結構,用于表示整數,精度小于 int。

42. signed

signed(有符号),表明該類型是有符号數,和 unsigned 相反。數字類型(整型和浮點型)都可以用 signed 修飾。但預設就是 signed,是以一般不會顯式使用。

43. sizeof

由于 C++ 每種類型的大小都是由編譯器自行決定的,為了增加可移植性,可以用 sizeof 運算符獲得該資料類型占用的位元組數。

44. static

static(靜态的)靜态變量作用範圍在一個檔案内,程式開始時配置設定空間,結束時釋放空間,預設初始化為 0,使用時可改變其值。靜态變量或靜态函數,隻有本檔案内的代碼才可通路它,它的名字(變量名或函數名)在其它檔案中不可見。是以也稱為"檔案作用域"。在 C++ 類的成員變量被聲明為 static(稱為靜态成員變量),意味着它被該類的所有執行個體所共享,也就是說當某個類的執行個體修改了該靜态成員變量,其修改值為該類的其它所有執行個體所見;而類的靜态成員函數也隻能通路靜态成員(變量或函數)。類的靜态成員變量必須在聲明它的檔案範圍内進行初始化才能使用,private 類型的也不例外。

45. static_cast

用法:

static_cast < type-id > ( expression )      

該運算符把 expression 轉換為 type-id 類型,但沒有運作時類型檢查來保證轉換的安全性。它主要有如下幾種用法:

  • ① 用于類層次結構中基類和子類之間指針或引用的轉換。進行上行轉換(把子類的指針或引用轉換成基類表示)是安全的;進行下行轉換(把基類指針或引用轉換成子類表示)時,由于沒有動态類型檢查,是以是不安全的。
  • ② 用于基本資料類型之間的轉換,如把 int 轉換成 char,把 int 轉換成 enum。這種轉換的安全性也要開發人員來保證。
  • ③ 把空指針轉換成目标類型的空指針。
  • ④ 把任何類型的表達式轉換成void類?

注意 static_cast 不能轉換掉 expression 的 const、volitale、或者 __unaligned 屬性。

46. struct

struct(結構)類型,類似于 class 關鍵字,與 C 語言相容(class 關鍵字是不與 C 語言相容的),可以實作面向對象程式設計。

47. switch

switch(轉換)類似于 if-else-if 語句,是一種多分枝語句。它提供了一種簡潔的書寫,并且能夠生成效率更好的代碼。但是,switch 後面的判斷隻能是int(char也可以,但char本質上也是一種int類型)。switch 語句最後的 default 分支是可選的。

48. template

template(模闆),C++ 中泛型機制的實作。

49. this

this 傳回調用者本身的指針。

50. throw

throw(抛出)用于實作 C++ 的異常處理機制,可以通過 throw 關鍵字"抛出"一個異常。

51. true

true(真的),C++ 的基本資料結構 bool 類型的值之一。等同于 int 的非 0 值。

52. try

try(嘗試)用于實作 C++ 的異常處理機制。可以在 try 中調用可能抛出異常的函數,然後在 try 後面的 catch 中捕獲并進行處理。

53. typedef

typedef(類型定義,type define),其格式為:

typedef  類型 定義名;      

類型說明定義了一個資料類型的新名字而不是定義一種新的資料類型。定義名表示這個類型的新名字。

54. typeid

指出指針或引用指向的對象的實際派生類型。

55. typename

typename(類型名字)關鍵字告訴編譯器把一個特殊的名字解釋成一個類型。在下列情況下必須對一個 name 使用 typename 關鍵字:

  • 1. 一個唯一的name(可以作為類型了解),它嵌套在另一個類型中的。
  • 2. 依賴于一個模闆參數,就是說:模闆參數在某種程度上包含這個name。當模闆參數使編譯器在指認一個類型時産生了誤解。

56. union

union(聯合),類似于 enum。不同的是 enum 實質上是 int 類型的,而 union 可以用于所有類型,并且其占用空間是随着實際類型大小變化的。

57. unsigned

unsigned(無符号),表明該類型是無符号數,和 signed 相反。

58. using

表明使用 namespace。

59. virtual

virtual(虛的),C++ 中用來實作多态機制。

60. void

void(空的),可以作為函數傳回值,表明不傳回任何資料;可以作為參數,表明沒有參數傳入(C++中不是必須的);可以作為指針使用。

61. volatile

volatile(不穩定的)限定一個對象可被外部程序(作業系統、硬體或并發線程等)改變,聲明時的文法如下:

int volatile nVint;      

這樣的聲明是不能達到最高效的,因為它們的值随時會改變,系統在需要時會經常讀寫這個對象的值。是以常用于像中斷處理程式之類的異步程序進行記憶體單元通路。

62. wchar_t

wchar_t 是寬字元類型,每個 wchar_t 類型占 2 個位元組,16 位寬。漢字的表示就要用到 wchar_t。

繼續閱讀