C/C++中常用的編程關鍵字

2020-12-16 DL小小寶

關鍵字

作用:關鍵字是C++中預先保留的單詞(標識符)

在定義變量或者常量時候,不要用關鍵字C++關鍵字如下:

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。

提示:在給變量或者常量起名稱時候,不要用C++得關鍵字,否則會產生歧義。

相關焦點

  • python+C、C++混合編程的應用
    有的語言專注於簡單高效,比如python,內建的list,dict結構比c/c++易用太多,但同樣為了安全、易用,語言也犧牲了部分性能。在有些領域,比如通信,性能很關鍵,但並不意味這個領域的coder只能苦苦掙扎於c/c++的陷阱中,比如可以使用多種語言混合編程。
  • 九大程式語言優缺點第四期:c++
    上一期給大家介紹了C語言,理所應當的本期給大家了解下C語言的超集,c++那麼接下來給大家介紹主流程式語言:C++、JavaScript、C#、Ruby、PHP以及Objective-C,對於這幾種語言,大家都能看到由其打造的頂尖應用,我們一起來了解一下吧。
  • C/C++優勢究竟在哪裡?是什麼讓他們經久不衰?看看這個你就懂了
    c語言誕生於1972年,是一個通用型命令式計算機程式語言,其支持結構化編程,詞彙變量範圍與遞歸,同時也是一種能夠預防各類未預期操作的靜態類型系統,最初的目標在於構建編寫系統軟體。相較於C語言,c++誕生於1983年,緊隨c語言的步伐,c++是C語言的超集,大家所知道的C語言是面向過程的,java是面向對象的,那麼C語言為了面向對象,所以誕生出現在大家所熟知的c++,被廣泛視為大規模應用構建軟體。
  • 編程大佬總結的50點學習C+的方法,一針見血,少走彎路
    25.和別人一起討論有意義的c++知識點,而不是爭吵xx行不行或者yy與zz哪個好; 26.請看《程序設計實踐》,並嚴格的按照其要求去做; 27.不要因為c和c++中有一些語法和關鍵字看上去相同,就認為它們的意義和作用完全一樣; 28.c++絕不是所謂的c的「擴充」——如果c++一開始就起名叫
  • C語言編程工具選擇
    一、編程工具計算機處理的數據、接受的指令是二進位數據,用C語言編寫的程序需要轉變成計算機能識別的二進位,才能讓計算機工作,這個轉換過程就是使用編譯器對源程序進行編譯,雖然可以使用命令行的方式編譯源程序,但使用編程工具不僅可以編譯源程序,還可以編寫、調試等,可以簡化編程工作。
  • 一文帶你了解c++和c中字符串的使用
    對於c語言當中,你好像沒有看到有關於字符串定義的關鍵字,不像我們常規的整型、浮點型、字符類型、指針、數組、結構體等數據類型,都能夠一眼就能看出他們是什麼數據類型
  • C++ 的幾個for 循環,範圍for語句
    ,而是一種編程思想,C++相對於C語言來說,會需要更多的想像力,原因就是C++的特點太多了。不過,我們可以通過學習C++的知識,來掌握面向對象的編程思想,有了這樣的思想後,再去看代碼或者去做自己的項目,是非常有幫助的。這個號是我的僚機號,會發一些大號發不了、或者沒有檔期發的內容,歡迎大家關注。
  • C++、java 和 C 的區別
    的區分 ,這個跟java和c# 的區別比較大,但c#裡面有unit ulong ushort 這三種就相當於c++的修飾詞unsigned,當c++李明的變量類型定義unsigned,就默認是整數。2.java和c#裡面都有字符串型 和byte型, 但c++裡面沒有,但它是以另外的形式存儲這類型的數據的,比如 java和c#裡面的 byte其實就是unsigned char類型;c++中字符數組就能存儲字符串 (char a[]={"hello"}; ps:注意c++裡面定義數組 變量必須在中括號前面)。
  • C/C++可變參數函數
    c/c++支持可變參數的函數,即函數的參數是不確定的。一、為什麼要使用可變參數的函數?一般我們編程的時候,函數中形式參數的數目通常是確定的,在調用時要依次給出與形式參數對應的所有實際參數。但在某些情況下希望函數的參數個數可以根據需要確定,因此c語言引入可變參數函數。這也是c功能強大的一個方面,其它某些語言,比如fortran就沒有這個功能。典型的可變參數函數的例子有大家熟悉的printf()、scanf()等。二、c/c++如何實現可變參數的函數?
  • C/C+編程筆記:const 變量詳解!一文了解具體用法
    在這裡解釋一下上述代碼:第二行代碼,使用了const(expression),顯示轉換,這是由於c++比c類型轉換更嚴格。extern關鍵字聲明為外部聯編。
  • C 2 C++進階篇(1)
    首先談談筆者的水平,只學過c和數據結構,接觸過指針,對於取地址&從來沒有接觸過(因為據說是老師說不符合嚴謹的c....), python
  • C++與C中的const關鍵字有何差別?
    前言在《const關鍵字到底該怎麼用》一文中介紹了C語言中的const關鍵字,本文說說C++中的const關鍵字,它的大部分特點和C語言中的類似,所以本文主要針對不同之處
  • C++中的static關鍵字的總結
    最近在備C++的課程,所以把在備課過程中遇到的問題進行了總結和梳理,先把C++中的static關鍵字的用法做以下總結。C++的static有兩種用法:面向過程程序設計中的static和面向對象程序設計中的static。前者應用於普通變量和函數,不涉及類;後者主要說明static在類中的作用。
  • 那些容易犯錯的c++保留字
    本文首發 | 公眾號:lunvey目前正在學習vc++6.0開發,而這裡面使用的是c++98標準。
  • C/C++編程筆記:C/C++中的strrchr()函數,到底該怎麼用?
    句法char * strrchr(const char * str,int c)在這裡,str是字符串,c是要定位的字符。它作為int促銷傳遞,但在內部轉換回char。 運用給定C ++中的字符串,我們需要查找字符的最後一次出現,假設為「 a」。
  • DSP編程技巧之17---非常「關鍵」的關鍵字
    接下來我們就看一下幾個常用關鍵字的用法,包括const,cregister,far,__interrupt等。在前面的一篇文章DSP編程技巧之15-使用代碼優化時必須考慮的五大問題中,我們已經描述了volatile和restrict的用法,在此不再重複描述。本文引用地址:http://www.eepw.com.cn/article/256730.htm  1.
  • C語言?c+?到底先學哪個才能更好的理解編程,這些你造嗎
    本身C語言和c++的編程方法不同,一個面向過程,一個面向對象。而要做出大型的、複雜的、精彩的程序,面向對象的語言就更適合。所以要學習c++這樣的語言。但是,1.c語言是好多學校的基礎課;2.c語言很容易描述算法;3.軟體開發過程中也有很多面向過程的開發,以及模塊化程序設計思想。要學習這些,比起學c++的複雜、困難程度,學c語言就可以達到上述目的。
  • c++11新特性,所有知識點都在這了!
    c++,說它特別難,可能有一部分就是因為c++的內存管理吧,不像java那樣有虛擬機動態的管理內存,在程序運行過程中可能就會出現內存洩漏,然而這種問題其實都可以通過c++11引入的智能指針來解決,相反我還認為這種內存管理還是c++語言的優勢,因為盡在掌握。
  • 編譯器 | 五款好用的C/C++編譯器(IDE利器)
    後面會帶來不同種類語言的不同使用環境中所使用的編譯器 or IDE。前三個集成 IDE +個 VS 是一些工作中常使用的,後面兩個是一些使用到 C/C++語言的比賽中經常使用的。在一次參加省級比賽的時候接觸了 dev-c++ 感覺頓時發現了新大陸,代碼補齊,代碼高亮提醒,支持c++11 標準,重要的可以自己設計語言,英語困難戶的福音。提供高亮度語法顯示的,以減少編輯錯誤,還有完善的調試功能。是一個初學者 C/C++ 的編譯器首選。(編譯器獲取方式在文末)
  • 細談c+對c增強
    以上c代碼c編譯器編譯可通過,c++編譯器無法編譯通過 2、c++對結構體的增強 1、c中定義結構體變量需要加上struct關鍵字,c++不需要 2、c中的結構體只能定義成員變量