C語言的32個關鍵字及對重點關鍵詞的理解

2021-09-01 06:23:56 字數 3142 閱讀 6651

c語言的關鍵字共有32個,其總共可以分為4類,控制語句關鍵字,資料型別關鍵字,儲存型別關鍵字和其他型別。

(1)控制語句關鍵字(12個)

for: 一種迴圈語句

do:  迴圈語句的迴圈體

while:迴圈語句的迴圈條件

break:跳出迴圈

if:  條件語句

else:  if條件語句的否定分支

goto:無條件跳轉語句(在當前的c語言中,禁用這個關鍵字,)

switch: 用於開關語句

case: 開關的分支語句(與switch連用)

default:分支語句的的其他分支(與switch,case連用)

return:子程式返回語句(可以引數,也可以步帶引數)

(2)資料型別關鍵字

char :宣告字元型變數或函式 (1個位元組大小)

double :宣告雙精度變數或函式 (8個位元組大小)

enum :宣告列舉型別 

float:宣告浮點型變數或函式 (4個位元組大小)

int: 宣告整型變數或函式 (4個位元組大小)

long :宣告長整型變數或函式 (4個位元組大小)

short :宣告短整型變數或函式 (2個位元組大小)

signed:宣告有符號型別變數或函式() 

struct:宣告結構體變數或函式 

union:宣告聯合資料型別 

unsigned:宣告無符號型別變數或函式 

void :宣告函式無返回值或無引數,宣告無型別指標(基本上就這三個作用) 

(3)儲存型別關鍵字

auto: 宣告自動變數一般不使用

extern:1,宣告變數是在其它檔案中

2,const修飾的全域性變數變為區域性

# includeconst int global = 10;//全域性變數

//extern const int global = 10;//變為區域性變數

int main()

register:宣告暫存器變數

static: 宣告靜態變數

(4)其他關鍵字

volatile: 說明變數在程式執行中可被隱含的改變

const: 宣告唯讀變數(c++中重點)

#includeusing namespace std;

int main()

1.  const修飾指標變數時:

(1)只有乙個const,如果const位於*左側,表示指標所指資料是常量,不能通過解引用修改該資料;指標本身是變數,可以指向其他的記憶體單元。

(2)只有乙個const,如果const位於*右側,表示指標本身是常量,不能指向其他記憶體位址;指標所指的資料可以通過解引用修改。

(3)兩個const,*左右各乙個,表示指標和指標所指資料都不能修改。

2. const修飾函式引數 時:傳遞過來的引數在函式內不可以改變,

void testconst(const int _x)
3.const引數傳遞和函式返回值時:   

(1) 值傳遞的const修飾傳遞,一般這種情況不需要const修飾,因為函式會自動產生臨時變數複製實參值。

#includeusing namespace std;

void cpf(const int a)

int main(void)

int cpf()

int main(void)

(2):const 修飾自定義型別的作為返回值,此時返回的值不能作為左值使用,既不能被賦值,也不能被修改。

(3): const 修飾返回的指標或者引用,是否返回乙個指向const的指標,取決於我們想讓使用者幹什麼。

sizeof:計算資料型別的長度

# include using namespace std;

int main()

;struct myint a1;

//有typedef

typedef struct myint

my;my a1;

3.為複雜的宣告定義乙個新的簡單的別名

(1). 原宣告:int *(*a[5])(int, char*);

變數名為a,直接用乙個新別名pfun替換a就可以了:

typedef int *(*pfun)(int, char*); 

原宣告的最簡化版:

pfun a[5];

(2) . 原宣告:void (*b[10]) (void (*)());

變數名為b,先替換右邊部分括號裡的,pfunparam為別名一:

typedef void (*pfunparam)();

再替換左邊的變數b,pfunx為別名二:

typedef void (*pfunx)(pfunparam);

原宣告的最簡化版:

pfunx b[10];

(3) . 原宣告:doube(*)() (*e)[9]; 

變數名為e,先替換左邊部分,pfuny為別名一:

typedef double(*pfuny)();

再替換右邊的變數e,pfunparamy為別名二

typedef pfuny (*pfunparamy)[9];

原宣告的最簡化版:

pfunparamy e;

舉例:int (*func)(int *p);

首先找到變數名func,外面有一對圓括號,而且左邊是乙個*號,這說明func是乙個指標;然後跳出這個圓括號,先看右邊,又遇到圓括號,這說明 (*func)是乙個函式,所以func是乙個指向這類函式的指標,即函式指標,這類函式具有int*型別的形參,返回值型別是int。

int (*func[5])(int *);

func 右邊是乙個運算子,說明func是具有5個元素的陣列;func的左邊有乙個*,說明func的元素是指標(注意這裡的*不是修飾func,而是修飾 func[5]的,原因是運算子優先順序比*高,func先跟結合)。跳出這個括號,看右邊,又遇到圓括號,說明func陣列的元素是函式型別的指 針,它指向的函式具有int*型別的形參,返回值型別為int。

也可以記住2個模式:

type (*)(....)函式指標 

type (*)陣列指標(還有很多用法,我們可以借鑑

C語言32個關鍵字

關鍵字就是已被c語言本身使用,不能作其它用途使用的字。例如關鍵字不能用作變數名 函式名等 由ansi標準定義的c語言關鍵字共32個 auto double int struct break else long switch case enum register typedef char extern...

C語言32個關鍵字

c語言32個關鍵字 void 宣告函式無返回值或無引數,宣告無型別指標,顯式丟棄運算結果。a基本資料類 char 字元型型別資料,屬於整型資料的一種。型 5個 int整型資料,通常為編譯器指定的機器字長。float 單精度浮點型資料,屬於浮點資料的一種,小數點後儲存6位。double 雙精度浮點型資...

C語言32個關鍵字

常見關鍵字 int宣告整型變數 double 宣告雙精度變數 long 宣告長整型變數 char 宣告字元型變數 float 宣告浮點型變數 short 宣告短整型變數 signed 宣告有符號型別變數 unsigned 宣告無符號型別變數 struct 宣告結構體變數 union 宣告聯合資料型別...