C語言關鍵字綜述

2021-09-10 23:36:35 字數 4143 閱讀 2462

ansi c標準c語言共有32個關鍵字,如下:

auto

break

case

char

const

continue

default do

double

else

enum

extern

float

forgoto

ifint

long

register

return

short

signed

sizeof

static

struct

switch

typedef

union

unsigned

void

volatile

while

2023年12月16日,iso推出了c99標準,該標準新增了5個c語言關鍵字:

inline

restrict

_bool

_complex

_imaginary

2023年12月8日,iso發布c語言的新標準c11,該標準新增了7個c語言關鍵字:

_alignas

_alignof

_atomic

_static_assert

_noreturn

_thread_local

_generic

目前一般用的c語言都是ansi c標準,部分編譯器支援c99標準。注意,c語言的關鍵字是區分大小寫的。程式設計鳥在其部落格c語言關鍵字解析中,對這些關鍵字進行了分類,在此借鑑一下,我按照此分類對ansi c標準的c語言關鍵字做簡要介紹。

第一類,有關資料「模子」的關鍵字:void、char、short、int、long、float、double、sizeof;

第二類,有關資料符號的關鍵字:signed、unsigned;

第三類,構造型別:struct、union、enum、typedef;

第四類,有關儲存與生命週期的型別:auto、static、extern、register、const、volatile;

第五類,有關語句的型別:if、else、for、while、do、switch、case、default、goto、break、continue、return

c語言關鍵字

資料型別

void

宣告函式無返回值或無引數,宣告無型別指標  

char

宣告字元型變數或函式  

short

宣告短整型變數或函式

int宣告整型變數或函式

long

宣告長整型變數或函式 

float

宣告浮點型變數或函式

double

宣告雙精度變數或函式

sizeof

計算資料型別長度

資料符號

signed

宣告有符號型別變數或函式

unsigned

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

構造型別

struct

宣告結構體變數或函式

union

宣告共用資料型別

enum

宣告列舉型別

typedef

用以給資料型別取別名

有關儲存與生命週期的型別

auto

宣告自動變數

static

宣告靜態變數

extern

宣告變數是在其他檔案

register

宣告暫存器變數

const

宣告唯讀變數

volatile

說明變數在程式執行中可被隱含地改變

有關語句的型別

if條件語句

else

條件語句否定分支(與 if 連用)

for一種迴圈語句

while

迴圈語句的迴圈條件

do迴圈語句的迴圈體

switch

用於開關語句

case

開關語句分支

default

開關語句中的「其他」分支

goto

無條件跳轉語句

break

跳出當前迴圈

continue

結束當前迴圈,開始下一輪迴圈

return

子程式返回語句(可以帶引數,也可不帶引數)迴圈條件

關鍵字的大概說明如上表所示。本文不對每乙個關鍵字做詳細介紹,個人認為資料型別、符號型別和有關語句的型別不是難點,本文從這3個型別中選幾個可能出錯的稍作展開。

資料型別是最基本的關鍵字,表示乙個變數的型別。不同的型別所佔的位元組大小不同,我用vs2010驗證如下:

int i;

unsigned int ii;

char c;

short sh;

double dou;

float f;

long l;

long int li;

long long int lli;

char str1=;

char str2=;

char str3[5]=;

printf("length of int: %d\r\n",sizeof(i));

printf("length of unsigned int: %d\r\n",sizeof(ii));

printf("length of char: %d\r\n",sizeof(c));

printf("length of short: %d\r\n",sizeof(sh));

printf("length of double: %d\r\n",sizeof(dou));

printf("length of float: %d\r\n",sizeof(f));

printf("length of long: %d\r\n",sizeof(l));

printf("length of long int: %d\r\n",sizeof(li));

printf("length of long long int: %d\r\n",sizeof(lli));

printf("length of str1: %d\r\n",sizeof(str1));

printf("length of str2: %d\r\n",sizeof(str2));

printf("length of str3: %d\r\n",sizeof(str3));

這裡注意sizeof是用來計算變數所佔空間大小,單位為位元組。輸出結果如下:

資料型別和資料符號配合使用,c語言預設型別都是有符號的,只有前面用unsigned修飾,才表示無符號型別。

不同的系統資料型別的長度是不一樣的,我的vs2010是32位系統的。32位系統和64位系統比較如下(**中長度單位是位元):

i表示:int型別

l表示:long型別

p表示:pointer指標型別

32表示32位系統

64表示64位系統

上面的例子中對字串進行了簡單表示。可以發現str1、str2、str3長度是不一樣的。

像str1這樣不指定陣列長度,直接用雙引號賦值,除了正常的字串外,在字串最後,系統會預設加乙個『\0』,表示結束。所以str1的長度就是6位元組;

像str2這樣雖不指定陣列長度,但是用單引號賦值,資料長度就是實際字元個數。所以str2長度就是5位元組;

像str3這樣指定資料長度,用雙引號賦值,sizsof顯示長度是陣列指定的長度,也就是5位元組。

c語言關鍵字之static

c語言關鍵字之extern

c語言關鍵字之register

c語言關鍵字之const

c語言關鍵字之volatile

c語言關鍵字之struct

c語言關鍵字之union

c語言關鍵字之enum

c語言關鍵字之typedef

[1]

C語言關鍵字

c語言關鍵字 在檔案範圍的教訓和關鍵字,你知道靜態變數保持他們的價值觀,甚至不在他們超出範圍的破壞。比如說呢。int generateid int main this program prints 01 2 請注意,s nid一直保持它的價值的跨多個函式呼叫。static關鍵字有另一種意思當應用到全...

C語言關鍵字

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

c語言關鍵字

c 語言標準定義的32 個關鍵字 1 auto 宣告自動變數,預設時編譯器一般預設為auto int 宣告整型變數 double 宣告雙精度變數 雙精度浮點型 long 宣告長整型變數 char 宣告字元型變數 float 宣告浮點型變數 單精度浮點型 6.1 float的有效位通常有 位,指的是小...