C语言关键字详解及应用

本文详细介绍了C语言中的32个关键字,包括数据类型(如char、int、float)、控制语句(如for、if、switch)、存储类型(如auto、static)以及其他辅助关键字(如const、volatile)。它还提供了每个关键字的详细解析和示例。
摘要由CSDN通过智能技术生成

前言: 学习C语言过程中会遇到许多的关键字,详细了解这些关键字的使用方法和使用场景就显得很必要了下面来详解C语言中的32个关键字

一、关键字概述

(1)数据类型关键字

char      声明字符型变量或函数

short     声明短整型变量或函数

int       声明整型变量或函数

long      声明长整型变量或函数

Signed    声明有符号类型变量或函数

unsigned  声明无符号类型变量或函数

float     声明浮点型变量或函数

double    声明双精度变量或函数

struct    声明结构体变量或函数

union     声明共用体(联合)数据类型

enum      声明枚举类型

void      声明函数无返回值或无参数,声明无类型指针

(2)控制语句关键字

[1]循环控制

for       一种循环语句

do       循环语句的循环体

while    循环语句的循环条件

break    跳出当前循环

continue 结束当前循环,开始下一轮循环

[2]条件语句

if       条件语句

else     条件语句否定分支

goto     无条件跳转语句

[3]开关语句

switch   用于开关语句

case     开关语句分支

default  开关语句中的其他分支

[4]返回语句

return   函数返回语句(可以带参数,也可以不带参数)

(3)存储类型关键字

auto     声明自动变量,一般不使用

extern   声明变量是在其他文件中声明

register 声明寄存器变量

static   声明静态变量

const    声明只读变量,不可以写入

(4)其他关键字

volatile 说明变量在程序执行中可被隐含地改变

typedef  用以给数据类型取别名

sizeof   计算数据类型长度

二、数据类型关键字

[1]数据类型取值范围表
<1>有符号整数类型取值范围及占用内存字节数

类型名称

占用内存字节数

取值范围

char

1

-2^7(-128) ~ 2^7-1(127)

short int 或  short

2

-2^15(-32 768) ~ 2^15-1(32 767)

 int

4

-2^31(-2 147 483 648) ~ 2^31-1(2 147 483 647)

 long int 或 long

4

-2^31(-2 147 483 648) ~ 2^31-1(2 147 483 647)

long long int 或  long long

8

-2^63(-9.2233720368548e+18) ~ 2^63-1(9.2233720368548e+18)

<2>无符号整数类型取值范围及占用内存字节数

类型名称

占用内存字节数

取值范围

unsigned char

1

0 ~ 2^8-1(255)

unsigned short int 或 unsigned short

2

0 ~ 2^16-1(65 535)

unsigned int

4

0 ~ 2^32-1(4 294 967 295)

unsigned long int 或 unsigned long

4

0 ~ 2^32-1(4 294 967 295)

unsigned long long int 或 unsigned long long

8

0 ~ 2^64-1(1.844674407371e+19)

<3>浮点类型取值范围及占用内存字节数

类型名称

占用内存字节数

取值范围

float

4

-/+3.4e38(精确到6位小数)

double

8

-/+1.7e308(精确到15位小数)

long double

12

-/+1.19e4932(精确到18位小数)

根据实际的功能需求来取所需的数据类型可以最大限度的的使用内存空间及节省内存占用。

[2]char关键字解析

char是表示字符类型的关键字,用于声明单个字符或字符数组。

例如:

声明一个字符变量c,初始值为字符'A'

char a = 'A';

声明一个字符数组str,初始值为字符串

char str[] = "Hello, world!";

声明一个字符指针*str,初始值为字符串

char *str = "Hello, world!";

[3]short关键字解析

short 关键字用于声明短整数类型变量,通常用于需要限制变量范围时。

例如:

声明一个短整数类型变量 d,初始值为 12

short d = 12;

[4]int关键字解析

int是表示整数类型的关键字,用于声明整型变量或数组。

例如:

声明一个整型变量x,初始值为1

int x = 1;

声明一个包含3个整数的数组arr,初始值为1,2,3

int arr[3] = {1, 2, 3};

[5]long关键字解析

long 关键字用于声明长整数类型变量,可以存储更大范围的整数。

例如:

声明一个长整数类型变量 pl,初始值为 1000000

long pl = 1000000L;

[6]signed关键字解析

signed 关键字用于声明有符号整数类型变量,可以存储正数、负数或零。

例如:

声明一个有符号整数类型变量 a,初始值为负数 -8

signed int a = -8;

声明一个有符号整数类型变量 a,初始值为正数 8

signed int a = 8;

[7]unsigned关键字解析

unsigned 关键字用于声明无符号整数类型变量,只能存储非负整数。

例如:

声明一个无符号整数类型变量 a,初始值为 10

unsigned int a= 10;

[8]float关键字解析

float是表示浮点数类型的关键字,用于声明单精度浮点型变量或数组。

例如:

声明一个单精度浮点型变量f,初始值为6.28f

float f = 6.28f;

声明一个包含3个单精度浮点数的数组arr,初始值为1.1f, 2.2f, 3.3f

float arr[3] = {1.1f, 2.2f, 3.3f};

[9]double关键字解析

double是表示双精度浮点数类型的关键字,用于声明双精度浮点型变量或数组。例如:

声明一个双精度浮点型变量d,初始值为6.28563478

double d = 6.28563478

声明一个包含3个双精度浮点数的数组arr,初始值为1.1,2.2,3.3

double arr[3] = {1.1, 2.2,3.3};

[10]struct关键字解析

struct是一种用于定义结构体类型,即由多个不同数据类型的变量组成的复合数据类型,一块内存的复合数据类型。

例如:

声明一个Person类型的结构体变量pr,初始值为{"Liming", 18}

struct Person {

char name[20];

int age;

};

struct Person pr = {"Liming", 18};

[11]union关键字解析

union是一种用于定义联合类型,即由多个不同数据类型的变量共享同一块内存的复合数据类型。

例如:

union Data {

    int i;

    float f;

    char str[20];

};

union Data data;

data.i = 20;

printf("%d\n", data.i);

data.f = 6.18f;

printf("%f\n", data.f);

strcpy(data.str, "Hello world");

printf("%s\n", data.str);

输出结果为:20

                     6.18

                     Hello world

[12]enum关键字解析

enum是一种用于定义枚举类型,即由一组常量组成的数据类型。

例如:

声明一个Color类型的枚举变量as,初始值为RED

enum Color {

RED,

GREEN,

BLUE

};

enum Color as = RED;

[13]void关键字解析

void是一个特殊的数据类型,表示无类型或无返回值,通常用于函数声明中表示函数没有返回值。

例如:

声明一个无返回值的函数PRO

void PRO(void){

printf("Hello, world!\n");

}

三、控制语句关键字

(1)循环控制

[1]for关键字解析

for是用于循环语句的关键字,用于指定循环的起始值、终止值和步长。

例如:

从0到11,每次增加1,重复执行下面的代码块

int i=0;

for (int i = 0; i < 12; i++) {

 printf("%d\n", i);

}

[2]do-while关键字解析

do是与while配合使用的关键字,用于先执行一次代码块,然后在条件成立时重复执行。

例如:

先执行一次下面的代码块,然后只要i小于12就一直重复执行

int i = 0;

do {

printf("%d\n ", i);

i++;

} while (i < 12);

[3]break关键字解析

break是用于跳出循环语句的关键字,用于在循环内部提前终止循环,跳出当前循环

例如:

for (int i = 0; i < 12; i++) {

if (i == 6) {

break;

}

printf("%d\n ", i);

}

[4]continue关键字解析

continue是用于跳过循环中的当前迭代的关键字,用于在循环内部跳过当前循环以下的步骤继续循环

例如:

for (int i = 0; i < 10; i++) {

if (i % 2 == 0) {

continue;

}

printf("%d ", i);}

(2)条件语句

[1]if关键字解析

if是用于条件语句的关键字,条件为真执行以下的代码块条件为假则不执行

例如:

int i = 1;

if (x > 0)  printf("welcome!\n");

[2]else关键字解析

else是与if配合使用的关键字,用于在if条件不成立时执行else以下的代码块否则不执行。

例如:

int i = 1;

if (x > 0)  printf("welcome!\n");

else         printf("default!\n");

[3]goto关键字解析

goto 是分支语句关键字,用于无条件地跳转到程序的另一个位置,谨慎使用,太多跳转会造成程序的复杂度增强

例如:
int i = 0;

start:

printf("%d\n", i);

i++;

if(i<20){

goto start;

}

(3)开关语句

[1]switch-case-default关键字解析

switch是用于多分支选,根据表达式的值跳转到不同的分支执行相应的代码块case是与switch配合使用,用于指定每个分支的值default是与switch配合使用,用于指定当没有匹配的case分支时要执行的代码块三者是相互搭配使用的。

例如:

int num = 0;

switch (num) {

    case 1:

        printf("You chose num 1.\n");

        break;

    case 2:

        printf("You chose num 2.\n");

        break;

    case 3:

        printf("You chose num 3.\n");

        break;

    default:   printf("Invalid num.\n");

        break;

}

(4)返回语句

[1]return关键字解析

return是用于函数中返回值的关键字,用于将某个值作为函数的返回值。

例如:

int add(int a, int b) {

return a+ b;

}

四、存储类型关键字

[1]auto关键字解析

auto是一种存储类关键字,用于在函数内部声明自动变量,即存储在函数栈中的变量。如果没有指定存储类别,则默认为auto

例如:

auto int i = 1;

printf("%d\n", i);

[2]register关键字解析

register是一种存储类关键字,用于声明寄存器变量,即将变量存储在CPU的寄存器中,以便加快访问速度。对于大多数编译器,register关键字已经不再有太大的作用,编译器会自动进行寄存器优化。

例如:

register int i = 100;

printf("%d\n",i);

[3]extern关键字解析

extern是一种存储类关键字,用于在一个文件中声明另一个文件中定义的变量或函数,以便使它们在其他文件中可用。

例如:
 PRO.c文件中声明x变量

int Bx;

 PRO.h文件中声明全局变量x

extern int Bx;

在abs的头文件中包含PRO.h文件即可在abs.c文件中调用

void abs(void) {

Bx = 100;

}

[4]static关键字解析

static是一种存储类关键字,用于在函数内部声明静态变量只能使用在声明的文件中,其他文件不能调用;静态变量存储在全局数据区或程序栈中,取决于它们的作用域和存储类型。

例如:

声明变量i为函数abs的静态局部变量,其他函数不能调用。
void abs(void) {

static int i = 0; i++;

printf("%d\n", i);

}

声明变量i为函数abs的静态全局变量,本文件的函数可以调用,其他文件不可以调用。

static int i = 0;
void abs(void) {

i++;

printf("%d\n", i);

}

[5]const关键字解析

const用于声明常量,即值不可更改的变量只可读取,存储在ROM内

例如:

const int i = 100; (i的值不可以更改)

五、其他关键字

[1]volatile关键字解析

volatile是一种关键字,用于告诉编译器,变量的值可能在外部被修改,因此不能进行某些优化

例如:

olatile int i = 20;

[2]typedef关键字解析

typedef用于创建自定义数据类型的别名,使别名成为真正的类型,增加可读性和代码维护性

例如:

typedef int u16;

u16 i = 20;

[3]sizeof关键字解析

sizeof用于返回数据类型或变量的大小,以字节为单位。

例如:

int arr[3] = {1, 2, 3};

int wordnum= sizeof(arr);

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值