目錄
- int,float,double,char
- short,long,signed,unsigned
- union,struct()
- enum
- auto
- static
- register
- extern
- for ,do ,while
- if,else, switch, case, default
- goto ,continue,break,return
- const,typedef,sizeof,volatile
前言
對於(yu) 剛入門c語言的小白而言,了解C語言的關(guan) 鍵字,包括其含義(yi) 、用法,對分析和編寫(xie) C程序都有著極其重要的作用
一、關鍵字是什麽?
關(guan) 鍵字又稱為(wei) 保留字,就是已被C語言本身使用,不能作其它用途使用的字,關(guan) 鍵字不能用作變量名、函數名等
下麵是小編總結的c語言常用的32個(ge) 關(guan) 鍵字
auto | break | case | char | const |
continue | default | do | double | else |
enum | extern | float | for | goto |
if | int | long | register | return |
short | signerd | sizeof | static | struct |
switch | typedeft | union | unsigned | void |
volatile | while |
二、關鍵字使用方法
1.關鍵字分類
- 數據類型關鍵字(12個)
int | 整型變量或函數 |
char | 字符型變量或函數 |
float | 浮點型變量或函數 |
double | 雙精度變量或函數 |
enum | 枚舉類型 |
short | 短整型變量或函數 |
long | 長整型變量或函數 |
signed | 有符號類型變量或函數 |
unsigned | 無符號類型變量或函數 |
struct | 結構體變量或函數 |
union | 聯合數據類型 |
void | 修飾函數,說明函數無返回值 |
修飾指針,說明指針是不確定數據類型的指針 | |
函數無返回值或無參數,無類型指針 |
- 存儲類型關鍵字(4個)
auto | 聲明自動變量 |
static | 聲明靜態變量 |
register | 聲明存儲器變量 |
extern |
聲明變量,在其他文件中聲明,亦引用變量 |
- 控製語句關鍵字(12個)
跳轉結構 | goto | 無條件跳轉語句 |
continue | 結束當前循環,開始下一輪循環 | |
break | 跳出當前循環或switch結構 | |
return | 子程序返回語句,可帶或不帶參數 | |
循環結構 | for | for循環結構 |
do | 循環語句的循環體 | |
while | 循環語句的循環條件 | |
分支結構 | if | 條件語句 |
else | 條件語句否定分支(與 if 連用) | |
switch | 用於開關語句 | |
case | 開關語句分支 | |
default | 開關語句中的“其他”分支,可選 |
- 其他關鍵字
const | 聲明隻讀變量 |
sizeof | 計算對象所占內存空間大小 |
typedef | 給數據類型取別名 |
volatile | 說明變量在程序執行中可被隱含地改變 |
2.使用方法(詳解)
1.數據類型關鍵字
-
int,float,double,char
#define _CRT_SECURE_NO_WARNINGS 1 #include <stdio.h> int main() { int a = 1;//定義(yi) 一個(ge) 整型數a,並且初始化為(wei) 1 float b = 2;//定義(yi) 一個(ge) 單精度浮點型數b,初始化為(wei) 2 double c = 10;//定義(yi) 一個(ge) 雙精度浮點數c,初始化為(wei) 10 char ch1 = 'x';//定義(yi) 一個(ge) 字符型數ch1,把字符x放入ch1中 printf("%d %f %lf %c\n", a, b, c,ch1); return 0; }
-
short,long,signed,unsigned
#include <stdio.h> int main() { long int a = 4;//定義(yi) 長整型數a,初始化為(wei) 4 short int b = 7;//定義(yi) 一個(ge) 短整型數b,初始化為(wei) 7 signed int d = 2;//定義(yi) 一個(ge) 有符號整型數d,初始化為(wei) 2 unsigned int c = 8;//定義(yi) 一個(ge) 無符號整型數c,初始化為(wei) 8 printf("%u", c); return 0; }
-
union,struct()
定義(yi) 格式為(wei)
union 共用體(ti) 名
{
成員列表
};
如:
#include <stdio.h> union book { float price; char name[40]; int id[20]; };//此共用體(ti) 包含三個(ge) 成員,分別是價(jia) 格price,書(shu) 名name,書(shu) 籍序列號id
struct用法與(yu) union一樣,兩(liang) 者不同的是結構體(ti) 的各個(ge) 成員會(hui) 占用不同的內(nei) 存,互相之間沒有影響;而共用體(ti) 的所有成員占用同一段內(nei) 存,修改一個(ge) 成員會(hui) 影響其餘(yu) 所有成員
-
enum
定義(yi) 格式為(wei) :
enum 枚舉(ju) 名
{枚舉(ju) 值名表};
如:
#include <stdio.h> enum {Jan,Fed,Mar,Apr,May,Jun,Jul,Aug,Sept,Oct,Nov,Dec}; //枚舉(ju) 一年中的1到12月
2.存儲(chu) 類型關(guan) 鍵字
-
auto
#include <stdio.h> void sub(float a) { auto int i;//這個(ge) i被auto修飾,為(wei) 局部變量,生命周期隻在這個(ge) 括號內(nei) }
-
static
-
register
寄存器變量也是自動變量,這種變量的值是保留在cpu的寄存器中,程序運行時,訪問存於(yu) 寄存器內(nei) 的值要比訪問存於(yu) 內(nei) 存中值要快得多,因此當程序對運行速度較高時,可把那些頻繁引用的少數變量指定為(wei) register變量以提高運行速度
#include <stdio.h> int main() { int power(int a, register int n);//函數聲明 int s; s = power(5, 3); printf("%d\n", s); } int power(int x, register int n)//函數定義(yi) { register int p; for (p = 1; n; n--) p = p * x; return p; }
-
extern
這個(ge) 函數用代碼舉(ju) 例可能沒有文字描述直觀,那小編就以字代碼和大家嘮嘮吧
在我們(men) 寫(xie) 代碼時,在一個(ge) project工程下,我們(men) 建立一個(ge) test-1.c文件和一個(ge) test-2.c文件,假如我們(men) 在第一個(ge) test-1.c文件中自定義(yi) 了一個(ge) 函數,假使我們(men) 在test-2.c文件中還需要用到這個(ge) 函數,我們(men) 就可以用auto+函數聲明,此時就可以調用外部函數啦
3.控製語句關鍵字
-
for ,do ,while
C語言 for 循環語句的一般格式如下:
for(表達式1; 表達式2; 表達式3)
循環體(ti) 語句;
#include<stdio.h> int main() { int a = 0;//定義(yi) 一個(ge) 整型數並且初始化為(wei) 0 for (a = 0; a <= 5; a++)//for循環,a從(cong) 0開始,到5結束,每次循環完a自增1 { printf("海綿寶寶");//循環一次打印一次海綿寶寶 } return 0; }
在C語言中do while一般連用構成循環
do
{
語句;
}
while (表達式);
#include<stdio.h> int main() { int a = 5; do { a = a + 3; printf("%d\n", a); } while (a > 20); return 0; }
-
if,else, switch, case, default
一般情況下,else都是跟if連用的,所以我們(men) 放在一起
語法為(wei) :
if(表達式)
{語句}
if(表達式)
{語句}
else(表達式)
{語句}
if分支有單分支,雙分支,多分誌的結構,在這裏我就例舉(ju) 一種情況來說明if else的用法
#include <stdio.h> int main() { int a = 0; scanf("%d", &a); if (a > 2 && a < 10)//如果a>2,並且a<10 { printf("我是大可愛"); } else//否則(即a不在2-10的範圍內(nei) ) { printf("我不可愛"); } return 0; }
case, switch, default一般情況下在一起用,這裏小編也放在一起和大家講啦
switch 語句根據控製表達式的值,可以把程序流跳轉到多個(ge) 語句中的一個(ge) 執行:括號裏的表達式具有整數類型,並且這裏的語句就是該 switch 主體(ti) ,它包括了多個(ge) case 情況,以及最多一個(ge) default 。
括號裏的表達式會(hui) 被計算一次,並和 case 標簽中的常量表達式做比較。如果表達式的值匹配其中的某個(ge) case 常量,程序流就會(hui) 跳轉到該 case 標簽後麵的語句。如果沒有匹配的 case 常量,程序流就會(hui) 跳轉到 default 標簽後的語句(如果存在 default 標簽)。
switch語句的一般表達形式
switch(表達式)
{
case 常量表達式1:語句1;
case 常量表達式2:語句2;
...
case 常量表達式n:語句n;
default:語句n+1;
}
#include<stdio.h> int main() { int g=100; switch (g / 10) { case 10:printf("perfect\n"); case 9: printf("A\n"); case 8: printf("B\n"); case 7: printf("C\n"); break;//如果case結束後不加break,程序就會(hui) 繼續往下執行 case 6: printf("D\n"); break; default: printf("over"); } return 0; }
在這裏小編還要強調的是,初學C語言的小夥(huo) 伴一定要深究加break與(yu) 不加break的區別,隻有弄清楚這個(ge) ,程序才能達到自己想要的結果哦
-
goto ,continue,break,return
goto語句成為(wei) 無條件轉向語句,一般形式:
goto 語句標號;
比如說,我們(men) 需要從(cong) 鍵盤輸入一組數據,以零作為(wei) 結束輸入數據標誌,求這組數據之和,這是我們(men) 可以借助goto來實現
#define _CRT_SECURE_NO_WARNINGS 1 #include <stdio.h> int main() { int number = 0; int sum = 0; loop:scanf("%d", &number);//loop是配合goto使用的,相當於(yu) 一個(ge) 行標號 sum += number;//sum=sum+number if (number != 0) goto loop;//跳轉到loop標記的那一行 printf("the total sum is%d\n", sum); return 0; }
前麵我們(men) 講到,break用來跳轉出switch語句當 break 關(guan) 鍵字用於(yu) while for循環時,會(hui) 終止循環而執行整個(ge) 循環語句後麵的代碼,滿足條件時便跳出循環。
continue 語句的作用是跳過循環體(ti) 中剩餘(yu) 的語句而強製進入下一次循環。下麵我們(men) 來看兩(liang) 個(ge) 代碼
#include <stdio.h> int main() { int a = 0; int b = 0; for (a = 1; a <= 10; a++)//a從(cong) 0開始,到十結束循環,每次循環a自增一次 { b = b + 1; if (b > 5) break;//跳出循環 printf("%d ", b); } return 0; }//此程序的輸出結果為(wei) 1 2 3 4 5
#include<stdio.h> int main() { int a = 0; int b = 0; for (a = 1; a <= 10; a++)//a從(cong) 1開始,到十結束循環,每次循環a自增一次 { b = b + a; printf("%d ", a); if (a % 2 == 0)//如果a除以二的餘(yu) 數等於(yu) 0 continue;//跳出這次循環,繼續下一次循環 printf("%d\n",b); } return 0; }
return 語句的一般形式為(wei) :
return 表達式;
或者:
return (表達式);
就是對函數返回類型的說明
int func(){ printf("https://c.biancheng.net\n"); }
-
const,typedef,sizeof,volatile
const
const int Max = 230;//用const修飾的變量,它的值不能被改變,在整個(ge) 作用域中都保持固定
sizeof
sizeof使用形式: sizeof(type) 數據類型必須用括號括住: sizeof(int)
#include<stdio.h> int main() { int b = 2; printf("%d", sizeof(b)); return 0; }
因為(wei) typedef和volatile所需要的篇幅較大,小編會(hui) 在後期的文章中逐一講解哦
總結
以上就是今天要講的內(nei) 容,本文僅(jin) 僅(jin) 簡單介紹了C語言常用關(guan) 鍵字的使用,而關(guan) 鍵字在除本文介紹之外的用法,還有許多強大的功能,隨著編程基礎的提高,大家可以慢慢去探索哦