高質(zhì)量的合肥網(wǎng)站建設(shè)百度高級(jí)搜索頁面
【C語言】關(guān)鍵字詳解
文章目錄
- @[TOC](文章目錄)
- 前言
- 一、char
- 1.定義字符串類型
- 2.定義字符類型
- 二、short
- 三、int
- 四、long
- 五、signed
- 六、unsigned
- 七、float
- 八、double
- 九、struct、union、enum
- 十、void
- 1.void用于函數(shù)聲明,沒有返回值的函數(shù),其類型為 void。
- 2.void不能用來聲明變量或常量
- 3.void是沒有返回值的,在void函數(shù)里面不能使用return來返回?cái)?shù)據(jù)。
- 十一、for
- 1.省略變量初始化
- 2.省略循環(huán)條件
- 3.省略變量更新
- 4.三個(gè)都省略
- 十二、do while
- 十三、while
- 十四、break
- 十五、continue
- 十五、if else
- 十六、goto
- 1.goto從上到下
- 2.goto從下到上
- 十七、switch case default
- 十八、return
- 十九、auto
- 二十、extern
- 二十一、register
- 二十二、static
- 二十三、typedef
- 1.對整形重命名
- 2.對數(shù)組重命名
- 3.對指針重命名
- 二十四、const
- 二十五、sizeof
- 1.計(jì)算數(shù)據(jù)類型大小
- 2.計(jì)算數(shù)組大小
- 二十六、volatile
- 二十七、參考資料
- 總結(jié)
文章目錄
- @[TOC](文章目錄)
- 前言
- 一、char
- 1.定義字符串類型
- 2.定義字符類型
- 二、short
- 三、int
- 四、long
- 五、signed
- 六、unsigned
- 七、float
- 八、double
- 九、struct、union、enum
- 十、void
- 1.void用于函數(shù)聲明,沒有返回值的函數(shù),其類型為 void。
- 2.void不能用來聲明變量或常量
- 3.void是沒有返回值的,在void函數(shù)里面不能使用return來返回?cái)?shù)據(jù)。
- 十一、for
- 1.省略變量初始化
- 2.省略循環(huán)條件
- 3.省略變量更新
- 4.三個(gè)都省略
- 十二、do while
- 十三、while
- 十四、break
- 十五、continue
- 十五、if else
- 十六、goto
- 1.goto從上到下
- 2.goto從下到上
- 十七、switch case default
- 十八、return
- 十九、auto
- 二十、extern
- 二十一、register
- 二十二、static
- 二十三、typedef
- 1.對整形重命名
- 2.對數(shù)組重命名
- 3.對指針重命名
- 二十四、const
- 二十五、sizeof
- 1.計(jì)算數(shù)據(jù)類型大小
- 2.計(jì)算數(shù)組大小
- 二十六、volatile
- 二十七、參考資料
- 總結(jié)
前言
提示:以下是本篇文章正文內(nèi)容,下面案例可供參考
本文著重參考了這篇文章
C語言32個(gè)關(guān)鍵字詳解
一、char
字符變量是用類型符char定義字符變量,char的主要作用就是聲明字符型變量或函數(shù)。
char類型是個(gè)1字節(jié),它的取值范圍是[-128 , 127] (-2^7 — 2^7-1)。
1.定義字符串類型
#include <stdio.h>
int main()
{char c[]="Hello,World!";printf("%s\n",c);printf("%c\n",c[0]);printf("%c\n",c[1]);system("pause");return 0;
}
2.定義字符類型
#include <stdio.h>
int main()
{char c = 'a'; char a; printf("%d\n", c); // 打印字符c的ASCII值printf("char的大小=%d\n", sizeof(a)); // 打印字符c的ASCII值system("pause"); // 在Windows系統(tǒng)上暫停程序,等待用戶按鍵繼續(xù)return 0;
}
二、short
類型名為 short int 或 short,聲明短整型變量或函數(shù)。
short類型為2個(gè)字節(jié),它的取值范圍是[-32768 , 32767] (-2^15 — 2^15-1)。
#include <stdio.h>
int main()
{short n=4;short c;printf("%d\n",n);short m=40000;printf("%d\n",m);printf("short的大小%d\n",sizeof(c));system("pause"); // 在Windows系統(tǒng)上暫停程序,等待用戶按鍵繼續(xù)return 0;
}
三、int
int為基本整型,聲明整型變量或函數(shù) 。
int類型為4個(gè)字節(jié),它的取值范圍是[-2147483648 , 2147483647] (-2^31 — 2^31-1)。
#include <stdio.h>
int main()
{int c = 4; int a;printf("c的值%d\n", c); // 打印字符c的ASCII值printf("int的大小%d\n", sizeof(a)); // 打印字符c的ASCII值 system("pause"); // 在Windows系統(tǒng)上暫停程序,等待用戶按鍵繼續(xù)return 0;
}
四、long
1、長整型:long int
long int類型為4個(gè)字節(jié)。
它的取值范圍是[-2147483648 , 2147483647] (-2^31 — 2^31-1)。
2、雙長整型:long long int
long long int類型為8個(gè)字節(jié)。
它的取值范圍是[-9223372036854775808 , 9223372036854775807] (-2^63 —
2^63-1)。
#include <stdio.h>
int main()
{long int c; long long int a; printf("long int=%d\n", sizeof(c)); // 打印字符c的ASCII值printf("long long int=%d\n", sizeof(a)); // 打印字符c的ASCII值system("pause"); // 在Windows系統(tǒng)上暫停程序,等待用戶按鍵繼續(xù)return 0;
}
五、signed
聲明有符號(hào)類型變量或函數(shù)。
我們知道計(jì)算機(jī)只認(rèn)識(shí)0和1,所以任何數(shù)據(jù)到1計(jì)算機(jī)的底層都會(huì)換成0,1,那負(fù)數(shù)怎么存儲(chǔ)呢?肯定這個(gè)“-”號(hào)是無法存入內(nèi)存的,怎么辦?很好辦,做個(gè)標(biāo)記。把基本數(shù)據(jù)類型的最高位騰出來,用來存符號(hào),同時(shí)約定如下:最高位如果是1,表明這個(gè)數(shù)是負(fù)數(shù),其值為除最高位以外的剩余位的值添上這個(gè)“-”號(hào);如果最高位是0,表明這個(gè)數(shù)是正數(shù),其值為除最高位以外的剩余位的值。
六、unsigned
unsigned表示的是無符號(hào)數(shù)據(jù)類型,聲明無符號(hào)類型變量或函數(shù)。
被unsigned修飾的變量,其取值范圍一定是大于0的。
1、無符號(hào)整形 unsigned int 4字節(jié) 0 ~ 4294967295
2、無符號(hào)短整型 unsigned short int 2字節(jié) 0 ~ 65535
3、無符號(hào)長整形 unsigned long int 4字節(jié) 0 ~ 4294967295
4、無符號(hào)字符型 unsigned char 1字節(jié) 0 ~ 255
#include <stdio.h>
int main(){unsigned int a = -11; unsigned char b = -129;printf("%u\n", a);printf("%u\n", b);return 0;
}
七、float
float類型也被叫做單精度浮點(diǎn)類型,聲明浮點(diǎn)型變量或函數(shù)。
float類型為4個(gè)字節(jié),它的數(shù)值取值范圍為[-3.410^-38 ~ 3.410^38]
#include <stdio.h>
int main(){float n=3.14;float a;printf("%f\n", n);printf("float的大小=%d\n",sizeof(a));return 0;
}
八、double
double類型也被叫做雙精度浮點(diǎn)類型,聲明浮點(diǎn)型變量或函數(shù)。
double類型為8個(gè)字節(jié),它的取值范圍為[-1.710^-308 ~ 1.710^308]
#include <stdio.h>
int main(){double n=3.14;double a;printf("%lf\n", n);printf("double的大小=%d\n",sizeof(a));return 0;
}
補(bǔ)充內(nèi)容:關(guān)于 %f 和 %lf 的使用
%f和%lf分別是float類型和double類型用于格式化輸入輸出時(shí)對應(yīng)的格式符號(hào)。 其中: float,單精度浮點(diǎn)型,對應(yīng)%f。
double,雙精度浮點(diǎn)型,對應(yīng)%lf。在用于輸出時(shí): float類型可以使用%lf格式 double類型如果使用了%f格式可能會(huì)導(dǎo)致輸出錯(cuò)誤。
在用于輸入時(shí): double 類型使用了%f格式,會(huì)導(dǎo)致輸入值錯(cuò)誤。
float類型使用double類型不僅會(huì)導(dǎo)致輸入錯(cuò)誤,還可能引起程序崩潰。
九、struct、union、enum
【C語言】結(jié)構(gòu)體、枚舉、聯(lián)合體
十、void
void類型修飾符(type specifier)表示“沒有值可以獲得”。因此,不可以采用這個(gè)類型聲明變量或常量。
1.void用于函數(shù)聲明,沒有返回值的函數(shù),其類型為 void。
#include <stdio.h>
void Add(int x,int y){printf("%d\n", x + y);
}
int main(){int gg = 11;int jj = 24;Add(gg,jj);return 0;
}
2.void不能用來聲明變量或常量
3.void是沒有返回值的,在void函數(shù)里面不能使用return來返回?cái)?shù)據(jù)。
十一、for
for表示的是一個(gè)循環(huán)語句,可以控制一個(gè)循環(huán),并且在每一次循環(huán)時(shí)修改循環(huán)變量。在循環(huán)語句中for應(yīng)該是最為靈活的,不僅可以用于循環(huán)次數(shù)已經(jīng)確定的情況,而且還可以用于循環(huán)次數(shù)不確定而只給出循環(huán)結(jié)束條件的情況。
1.省略變量初始化
#include <stdio.h>
int main(){int i = 0; //在for循環(huán)外面對變量進(jìn)行賦值for (; i < 10; i++){printf("%d ", i);}return 0;
}
2.省略循環(huán)條件
#include <stdio.h>
int main(){int i; //在for循環(huán)外面對變量進(jìn)行賦值for (i = 0; ; i++){printf("%d ", i);}return 0;
}
3.省略變量更新
#include <stdio.h>
int main(){int i; //在for循環(huán)外面對變量進(jìn)行賦值for (i = 0; i<10 ; ){printf("%d ", i);}return 0;
}
4.三個(gè)都省略
#include <stdio.h>
int main(){int i; //在for循環(huán)外面對變量進(jìn)行賦值for (; ; ){printf("%d ", i);}return 0;
}
十二、do while
do…while是一個(gè)比較特殊的循環(huán),因?yàn)樵谟行l件下,不論條件是否滿足,循環(huán)過程必須至少執(zhí)行一次。
注意:在使用do…while語句時(shí),條件放在while關(guān)鍵字后面的括號(hào)中,最后必須加上一個(gè)分號(hào)。
#include <stdio.h>
int main(){int n = 1;int sum = 0;do{sum += n;n++; //這里我們讓n進(jìn)行自加} while (n <= 1);printf("%d\n", sum); //用sum來計(jì)算總和return 0;
}
十三、while
while循環(huán)語句首先檢查一個(gè)條件,也就是括號(hào)中的表達(dá)式。當(dāng)條件為真時(shí),就執(zhí)行緊跟其后的語句或者語句塊。每執(zhí)行一遍程序,都將回到while語句處,重新檢驗(yàn)條件是否滿足。如果一開始就不滿足,則跳過循環(huán)體中的語句,直接執(zhí)行后面程序代碼。如果第一次檢驗(yàn)時(shí)滿足,那么在第一次或其后的循環(huán)過程中,必須得有使條件為假的操作,否則循環(huán)將無法終止。
#include <stdio.h>
int main(){int n = 1;int sum = 0;while (n <= 1){sum += n;n++;}printf("%d\n", sum); //計(jì)算總和return 0;
}
十四、break
break語句終止并跳出循環(huán),繼續(xù)執(zhí)行后面的代碼。
#include <stdio.h>
int main(){while (1){printf("blue"); break; //直接結(jié)束循環(huán),就不會(huì)進(jìn)入死循環(huán)}return 0;
}
十五、continue
在某些情況下,程序需要返回到循環(huán)頭部繼續(xù)執(zhí)行,而不是像break那樣跳出循環(huán)。
continue的主要作用就是結(jié)束本次循環(huán)。就是跳過循環(huán)體中尚未執(zhí)行的部分,直接執(zhí)行下一次循環(huán)的操作。
注意:continue語句和break語句的區(qū)別:continue語句只能結(jié)束本次循環(huán),而不是終止整個(gè)循環(huán)的執(zhí)行;break語句則是結(jié)束整個(gè)循環(huán)過程,不再判斷執(zhí)行循環(huán)的條件是否成立。
十五、if else
if…else語句。在if后的括號(hào)中判斷表達(dá)式的結(jié)果,如果判斷的結(jié)果為真,則執(zhí)行緊跟if后語句塊中的內(nèi)容;如果判斷的結(jié)果為假,則執(zhí)行else語句后的語句塊內(nèi)容。也就是說,當(dāng)if語句檢驗(yàn)的條件為假時(shí),就執(zhí)行相應(yīng)的else語句后面的語句或者語句塊
十六、goto
goto語句為無條件轉(zhuǎn)移語句,可以使程序立即跳轉(zhuǎn)到函數(shù)內(nèi)部任意一條可執(zhí)行語句。goto關(guān)鍵字后面帶一個(gè)標(biāo)點(diǎn)符,該標(biāo)點(diǎn)符是同一個(gè)函數(shù)中某條語句的符號(hào)。符號(hào)可以出現(xiàn)在任何可執(zhí)行語句前面,并且以一個(gè)冒號(hào)“:”作為后綴
1.goto從上到下
#include <stdio.h>
int main(){
goto end;printf("1\n");printf("2\n");printf("3\n");printf("4\n");
end:printf("5\n");printf("6\n");printf("7\n");return 0;
}
2.goto從下到上
#include <stdio.h>
int main(){ //這個(gè)代碼會(huì)進(jìn)入一個(gè)死循環(huán)printf("1\n"); //到了goto永遠(yuǎn)往上執(zhí)行,不會(huì)停止printf("2\n");printf("3\n");printf("4\n");
end: printf("5\n");
goto end;printf("6\n");printf("7\n");return 0;
}
十七、switch case default
switch語句是多分支選擇語句。
if語句只有兩個(gè)分支供選擇,而在實(shí)際問題中常需要用到多分支選擇。在c語言中可以用switch語句直接處理多分支選擇情況,將程序的代碼可讀性提高。switch后面括號(hào)中的表達(dá)式就是要進(jìn)行判斷的條件。在switch語句塊中,使用case關(guān)鍵字表示檢驗(yàn)條件符合的各種情況,其后的語句是相應(yīng)的操作。其中還有一個(gè)default關(guān)鍵字,作用是如果沒有符合條件的情況,那么執(zhí)行default后面默認(rèn)的情況語句。
#include <stdio.h>
int main(){int day;printf("請輸入1-7:");scanf("%d", &day);switch (day){case 1:printf("星期一\n");// break;case 2:printf("星期二\n");break;case 3:printf("星期三\n");break;case 4:printf("星期四\n");break;case 5:printf("星期五\n");break;case 6:printf("星期六\n");break;case 7:printf("星期天\n");break;default:printf("你輸入的有誤!\n");break;}return 0;
}
十八、return
return 0 代表程序正常退出,return 1代表程序異常退出。
使用return語句可以返回一個(gè)變量內(nèi)的值或一個(gè)指針,也可用return0,表示返回為空。
return 代表調(diào)到函數(shù)外。
return 0代表函數(shù)正常終止。return 1代表函數(shù)非正常終止。
return 關(guān)鍵字的作用是返回程序流程的控制權(quán)。其副作用是返回一個(gè)值。
十九、auto
auto:在缺省情況下,編譯器默認(rèn)所有的變量都是auto的,所以autu關(guān)鍵字可以省略。
auto關(guān)鍵字用于定義一個(gè)局部變量為自動(dòng)的,這意味著每次執(zhí)行到定義該變量時(shí),都會(huì)產(chǎn)生一個(gè)新的變量,并且對其重新初始化。聲明自動(dòng)變量,一般不使用
二十、extern
extern變量稱為外部存儲(chǔ)變量。extern聲明了程序中將要用到但尚未定義的外部變量。通常外部儲(chǔ)存都用于聲明在另一個(gè)轉(zhuǎn)換單元中定義的變量。
一個(gè)工程是由多個(gè)c文件組成的。這些源代碼文件會(huì)分別進(jìn)行編譯,然后鏈接成一個(gè)可執(zhí)行的模塊。把這樣的一個(gè)程序作為一個(gè)工程進(jìn)行管理,并且生成一個(gè)工程文件來記錄所有包含源代碼文件。
二十一、register
register:這個(gè)關(guān)鍵字請求編譯器盡可能地將變量存在CPU內(nèi)部寄存器中,而不是通過內(nèi)存尋址訪問以提高效率。注意是盡可能,不是絕對。可以想象,一個(gè)CPU的寄存器數(shù)量有限,也就那么幾個(gè)或幾十個(gè),如果用戶定義了很多很多register變量,那么即便把CPU“累死”也不可能全部把這些變量放人寄存器,可能輪也輪不到你。
二十二、static
【C語言】static關(guān)鍵字修飾局部變量、全局變量、函數(shù)
二十三、typedef
typedef關(guān)鍵字用以給數(shù)據(jù)類型取別名(但是該關(guān)鍵字被分到存儲(chǔ)關(guān)鍵字分類中,雖然看起來沒什么相關(guān)性)。
typedef其實(shí)就是一個(gè)含義:類型重命名
對一般類型進(jìn)行重命名 。
對結(jié)構(gòu)體類型進(jìn)行重命名 。
對指針進(jìn)行重命名 。
對復(fù)雜結(jié)構(gòu)進(jìn)行重命名。
1.對整形重命名
2.對數(shù)組重命名
3.對指針重命名
二十四、const
二十五、sizeof
siezof的主要作用就是計(jì)算數(shù)據(jù)類型長度
1.計(jì)算數(shù)據(jù)類型大小
#include<stdio.h>
int main(){printf("%d\n",sizeof(char));printf("%d\n",sizeof(short));printf("%d\n",sizeof(int));printf("%d\n",sizeof(float));printf("%d\n",sizeof(double));return 0;
}
2.計(jì)算數(shù)組大小
#include <stdio.h>
int main(){int jj[] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };//int為4個(gè)字節(jié)//我們定義了10個(gè)數(shù)//所以10*4=40個(gè)字節(jié)printf("%d\n", sizeof(jj));//40//下面我們求的是數(shù)組的空間大小printf("%d\n", sizeof(jj)/sizeof(jj[0]));//10return 0;
}
二十六、volatile
volatile關(guān)鍵字和const一樣是一種類型修飾符,用它修飾的變量表示可以被某些編譯器未知的因素更改,比如操作系統(tǒng)、硬件或者其他線程等。遇到這個(gè)關(guān)鍵字聲明的變量,編譯器對訪問該變量的代碼就不再進(jìn)行優(yōu)化,從而可以提供對特殊地址的穩(wěn)定訪問
二十七、參考資料
C語言實(shí)現(xiàn)窗體程序,DevC++ 窗體應(yīng)用
Dev-Cpp 5.11 TDM-GCC 4.9.2 Setup.zip
Dev C++下載安裝和使用教程(新手必看)
static和const的作用與區(qū)別
總結(jié)
本文僅僅簡單介紹了【C語言】關(guān)鍵字詳解,評論區(qū)歡迎討論。