C语言基础知识梳理

本文详细介绍了C语言的基础知识,包括判断语句(if、if...else、switch)、循环(while、for、do...while)、函数、数组、指针、枚举、结构体和共用体。对于每个主题,不仅阐述了语法,还给出了示例,是初学者掌握C语言的宝贵资源。
摘要由CSDN通过智能技术生成

一、判断语句

1、if语句

if(布尔表达式,即判断语句)

{

/* 如果布尔表达式为真将执行的语句 */

}

2、if else语句

if(boolean_expression)

{

/* 如果布尔表达式为真将执行的语句 */

}

else

{

/* 如果布尔表达式为假将执行的语句 */

}

if...else else if 语句

if(布尔表达式,判断语句)

{

/* 当布尔表达式 1 为真时执行 */

}

else if( boolean_expression 2)

{

/* 当布尔表达式 2 为真时执行 */

}

else if( boolean_expression 3)

{

/* 当布尔表达式 3 为真时执行 */

}

else

{

/* 当上面条件都不为真时执行 */

}

嵌套if语句

if( 布尔表达式,判断语句)

{

/* 当布尔表达式 1 为真时执行 */

if(boolean_expression 2)

{

/* 当布尔表达式 2 为真时执行 */

}

}

3、switch 语句

switch(条件){

case 判断1 :

返回1;

break; /* 可选的,跳出switch语句 */

case 判断2 :

返回2 ;

break;

/* 您可以有任意数量的 case 语句 */

default : /* 可选的 用于在上面所有 case 都不为真时执行一个任务*/

返回3;

}

嵌套 switch 语句

例:

switch(ch1) {

case 'A':

printf("这个 A 是外部 switch 的一部分" );

switch(ch2) {

case 'A':

printf("这个 A 是内部 switch 的一部分" );

break;

case 'B': /* 内部 B case 代码 */

}

break;

case 'B': /* 外部 B case 代码 */

}

二、循环

1、while循环

while(条件)

{

执行语句;

}

“条件” 可以是任意的表达式,当为任意非零值时都为 true。当条件为 true 时执行循环。 当条件为 false 时,退出循环,程序流将继续执行紧接着循环的下一条语句。

2、for 循环

for ( 初始赋值; 条件判断; 执行语句1 )

{

执行语句2;

}

3、do...while 循环

do

{

执行语句;

}while( 条件 );

条件表达式出现在循环的尾部,所以循环中的“ 执行语句 ”会在条件被测试之前至少执行一次。

如果条件为真,控制流会跳转回上面的 do,然后重新执行循环中的“ 执行语句 ”。这个过程会不断重复,直到给定条件变为假为止。

三、函数

1、定义函数

C 语言中的函数定义的一般形式如下:

返回值类型 函数名( 参数 )

{

函数体

}

2、函数声明

函数声明会告诉编译器函数名称及如何调用函数。函数的实际主体可以单独定义。

返回值类型 函数名( 参数 )

3、函数调用

函数名( 参数 )

四、数组

1、数组定义

数据类型 数组名 [ 数组大小 ];

2、初始化数组

例:

double balance[5] = {1000.0, 2.0, 3.4, 7.0, 50.0}; //大括号 { } 之间的值的数目不能大于我们在数组声明时在方括号 [ ] 中指定的元素数目

//如果省略掉了数组的大小,数组的大小则为初始化时元素的个数

为数组中某个元素赋值的实例:

balance[4] = 50.0; //为数组内第五个元素赋值50.0;注:数组元素计数从0开始

3、多维数组

int threedim[5][10]; //声明一个5行10列的整形二维数组

初始化二维数组

多维数组可以通过在括号内为每行指定值来进行初始化。下面是一个带有 3 行 4 列的数组。

int a[3][4] = {

{0, 1, 2, 3} , /* 初始化索引号为 0 的行 */

{4, 5, 6, 7} , /* 初始化索引号为 1 的行 */

{8, 9, 10, 11} /* 初始化索引号为 2 的行 */

};

int a[3][4] = {0,1,2,3,4,5,6,7,8,9,10,11}; //内部嵌套初始化形式,括号是可选的

访问二维数组元素

二维数组中的元素是通过使用下标(即数组的行索引和列索引)来访问的。例如:

int val = a[2][3];

上面的语句将获取数组中第 3 行第 4 个元素

五、指针

指针也就是内存地址,指针变量是用来存放内存地址的变量。

指针变量声明的一般形式为:

数据类型 *指针变量名;

*ptr

ptr++

指针的每一次递增,它其实会指向下一个元素的存储单元。

指针的每一次递减,它都会指向前一个元素的存储单元。

指针在递增和递减时跳跃的字节数取决于指针所指向变量数据类型长度,比如 int 就是 4 个字节

指向指针的指针是一种多级间接寻址的形式,或者说是一个指针链。通常,一个指针包含一个变量的地址。

当我们定义一个指向指针的指针时,第一个指针包含了第二个指针的地址,第二个指针指向包含实际值的位置。

例:

int **var; //指向 int 类型指针的指针:

六、枚举

枚举类型通常用于为程序中的一组相关的常量取名字,以便于程序的可读性和维护性。

enum 枚举名 {枚举元素1,枚举元素2,……};

七、结构体

结构体(struct)是由一系列具有相同类型或不同类型的数据构成的数据集合

Struct 结构体名

{ 成员列表;

}变量名列表;

使用typedef定义结构体

例:

定义

typedef struct{

int date;

.....

.....

}student;

使用:

student t1

{

123;

123;

....

....

}

八、共用体(联合体)是一种特殊的数据类型,允许您在相同的内存位置存储不同的数据类型

一般定义形式:

union 联合名

{

成员表

};

结构体与共用体的主要区别在于存储方式的不同:

1.结构体在定义后,声明变量时系统为该变量申请内存空间为所有成员变量所占用的内存空间之和。

2.共用体变量声明时,变量占有空间不变,在同一时间,只能存储某一个成员的信息。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值