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