在C语言中,`stdlib.h` 是一个非常重要的头文件,它包含了多种实用的函数,用于处理内存分配、随机数生成、字符串转换以及其他一些常见的任务。本文将介绍 `stdlib.h` 中几个常用函数的用法,并通过示例代码帮助读者更好地理解这些函数的功能。
1. `malloc` 和 `free`
`malloc` 函数用于动态分配内存,而 `free` 则用来释放已分配的内存。这是程序开发中经常使用的内存管理工具。
示例代码:
```c
include
include
int main() {
int arr;
int n = 5;
// 动态分配内存
arr = (int ) malloc(n sizeof(int));
if (arr == NULL) {
printf("Memory allocation failed\n");
return 1;
}
// 使用分配的内存
for (int i = 0; i < n; i++) {
arr[i] = i + 1;
}
// 打印数组内容
printf("Array elements: ");
for (int i = 0; i < n; i++) {
printf("%d ", arr[i]);
}
printf("\n");
// 释放内存
free(arr);
return 0;
}
```
在这个例子中,我们首先使用 `malloc` 分配了一个包含5个整数的数组,然后填充并打印数组的内容,最后通过 `free` 释放了分配的内存。
2. `rand` 和 `srand`
`rand` 函数用于生成伪随机数,而 `srand` 用于设置随机数种子。通过设置不同的种子,可以控制随机数序列的变化。
示例代码:
```c
include
include
include
int main() {
// 设置随机数种子
srand(time(NULL));
// 生成10个随机数
printf("Random numbers: ");
for (int i = 0; i < 10; i++) {
printf("%d ", rand() % 100); // 限制范围在0到99之间
}
printf("\n");
return 0;
}
```
这个例子展示了如何使用 `srand` 和 `rand` 来生成一系列随机数。通过 `time(NULL)` 作为种子,每次运行程序时都会得到不同的随机数序列。
3. `atoi` 和 `atol`
`atoi` 函数用于将字符串转换为整数,而 `atol` 则用于将字符串转换为长整型。
示例代码:
```c
include
include
int main() {
const char str1[] = "12345";
const char str2[] = "98765";
// 字符串转整数
int num1 = atoi(str1);
long num2 = atol(str2);
printf("String '%s' converted to integer: %d\n", str1, num1);
printf("String '%s' converted to long: %ld\n", str2, num2);
return 0;
}
```
在这段代码中,我们演示了如何使用 `atoi` 和 `atol` 将字符串转换为相应的数值类型。
总结
`stdlib.h` 提供了许多强大的函数,能够帮助开发者更高效地完成各种编程任务。掌握这些函数的正确用法,不仅能够提高代码的质量,还能增强程序的健壮性和可维护性。希望本文能为你提供一些有价值的参考信息。