C语言中的数据结构与算法实践
发布时间: 2024-02-22 08:24:28 阅读量: 31 订阅数: 39
C语言数据结构与算法
# 1. C语言基础回顾
## 1.1 变量与数据类型
在C语言中,变量是用来存储数据值的内存位置。在使用变量之前,需要定义变量的类型和名称。以下是一些常见的C数据类型:
- **int**: 用于存储整数值
- **float**: 用于存储单精度浮点数
- **double**: 用于存储双精度浮点数
- **char**: 用于存储单个字符
- **_Bool**: 用于存储布尔值(逻辑值)
```c
#include <stdio.h>
int main() {
int num = 10;
float num_float = 3.14;
char letter = 'A';
printf("整数值:%d\n", num);
printf("浮点数值:%f\n", num_float);
printf("字符值:%c\n", letter);
return 0;
}
```
代码说明:
- 定义了一个整数变量`num`,一个浮点数变量`num_float`,一个字符变量`letter`
- 分别使用`%d`、`%f`、`%c`格式化输出不同类型的变量值
- 最终输出整数值、浮点数值和字符值
运行结果:
```
整数值:10
浮点数值:3.140000
字符值:A
```
## 1.2 控制流结构
控制流结构用于控制代码的执行流程,包括条件语句(if-else)、循环语句(for、while)和跳转语句(break、continue)等。
```c
#include <stdio.h>
int main() {
int num = 10;
if (num > 0) {
printf("数字是正数\n");
} else if (num == 0) {
printf("数字是零\n");
} else {
printf("数字是负数\n");
}
for (int i = 1; i <= 5; i++) {
printf("%d ", i);
}
return 0;
}
```
代码说明:
- 使用if-else语句判断变量`num`的正负零情况
- 使用for循环输出1到5的整数
运行结果:
```
数字是正数
1 2 3 4 5
```
## 1.3 函数与指针
函数是一段封装了特定功能的代码块,可以重复调用。指针是用来存储内存地址的变量,在C语言中经常与函数结合使用。
```c
#include <stdio.h>
void swap(int *a, int *b) {
int temp = *a;
*a = *b;
*b = temp;
}
int main() {
int x = 10, y = 20;
printf("交换前:x = %d, y = %d\n", x, y);
swap(&x, &y);
printf("交换后:x = %d, y = %d\n", x, y);
return 0;
}
```
代码说明:
- 定义了一个swap函数,用来交换两个整数的值
- 在main函数中调用swap函数,传入两个整数的指针
运行结果:
```
交换前:x = 10, y = 20
交换后:x = 20, y = 10
```
## 1.4 内存管理
在C语言中,需要手动管理内存,包括内存分配和释放。常用的函数有malloc()、calloc()和free()等。
```c
#include <stdio.h>
#include <stdlib.h>
int main() {
int *ptr = (int*)ma
```
0
0