c 语言函数大全及详解,首先要区分两大类,一类是程序员自己编写的自定义函数,另一类是编译器自带的标准库函数,标准库函数不需要自己实现,只要引入对应的头文件就可以直接调用,c 语言程序就是由一个个函数组成,main 函数是程序入口,任何 c 程序都是从 main 函数开始执行,函数的核心作用是模块化,把重复代码封装,减少代码冗余,提升可读性,标准库函数按照头文件分类,常用的有输入输出 stdio.h,数学运算 math.h,字符串处理 string.h,动态内存 stdlib.h,入门考试主要掌握高频库函数,不需要一次性背完全部几百个库函数,重点理解函数三要素,返回值类型 函数名 参数列表,还有值传递和地址传递的区别,很多新手容易混淆形参实参,不知道为什么函数内部修改变量主函数没有变化,根源就是值传递不会修改原变量,指针传递才可以修改外部变量。之所以学习 c 语言函数大全及详解,是因为后面数组指针结构体综合项目,大量调用库函数,同时自己写自定义函数也是考试上机必考内容。学习第一步理解自定义函数定义声明调用,第二步逐个学习 stdio 输入输出库函数,第三步学习 math 数学函数,第四步 string 字符串函数,第五步 stdlib 内存和随机数函数,第六步理解递归函数,第七步综合练习自定义函数案例,最后区分每个函数对应的头文件,调用之前记得 include 引入头文件。
一 自定义函数基础
函数通用格式
返回值类型 函数名 (形参列表)
{
函数体
return 返回值;
}
要点
1 如果不需要返回值,返回类型写 void
2 形参是函数内部局部变量,默认值传递
3 函数调用之前,如果定义写在 main 后面,需要提前函数声明
4 递归函数,函数内部自己调用自己,必须设置终止条件,否则死递归栈溢出
二 stdio.h 输入输出类函数
printf 格式化输出,打印变量文本
scanf 格式化键盘输入
putchar 输出单个字符
getchar 读取单个键盘字符
puts 输出字符串,自动换行
gets 读取一行字符串,存在安全风险,新版推荐 fgets
fopen 文件打开
fclose 文件关闭
fprintf 文件格式化写入
fscanf 文件格式化读取
fgetc fputc 按字符读写文件
三 math.h 数学函数
abs 整数求绝对值
fabs 浮点数绝对值
sqrt 开平方
pow 幂运算 pow (x,y) x 的 y 次方
sin cos tan 三角函数,参数是弧度
floor 向下取整
ceil 向上取整
注意 math.h 函数很多编译器编译需要链接数学库
四 string.h 字符串处理函数
strlen 求字符串有效长度,不包含结束符 \0
strcpy 字符串复制
strcat 字符串拼接
strcmp 字符串比较,按 ASCII 比较大小
strstr 查找子串
memcpy 内存块复制
memset 内存初始化填充
五 stdlib.h 常用函数
malloc 动态分配内存
free 释放 malloc 申请内存
rand 生成随机整数
srand 设置随机数种子
exit 退出程序
atoi 字符串转整数
atof 字符串转浮点数
qsort 快速排序函数
六 高频函数对照表
| 头文件 | 函数名 | 主要功能 |
|---|---|---|
| stdio.h | printf | 格式化输出 |
| stdio.h | scanf | 格式化输入 |
| math.h | sqrt | 平方根 |
| math.h | pow | 幂运算 |
| string.h | strlen | 字符串长度 |
| string.h | strcpy | 字符串拷贝 |
| stdlib.h | malloc | 动态内存申请 |
| stdlib.h | rand | 随机数 |
七 重点易错知识点
1 调用库函数忘记写 include 头文件,编译报错或者警告
2 strcpy strcat 不检查目标空间大小,容易缓冲区溢出
3 malloc 申请内存之后忘记 free,造成内存泄漏
4 递归没有出口,栈溢出崩溃
5 值传递,函数内部修改形参,主函数原变量不变
6 函数声明和函数定义返回值类型不一致,编译警告
【常见问题】
问题 1 c 语言函数大全及详解里面 main 函数是什么函数
回答 1 c 语言函数大全及详解里面 main 函数是程序入口函数,程序运行最先执行 main 函数,c 语言函数大全及详解里面 main 属于特殊自定义函数,不是标准库函数。
问题 2 c 语言函数大全及详解里面 strlen 属于哪个头文件
回答 1 c 语言函数大全及详解里面 strlen 是字符串函数,头文件是 string.h,c 语言函数大全及详解调用之前必须引入 string.h。
问题 3 c 语言函数大全及详解里面值传递和地址传递区别
回答 1 c 语言函数大全及详解里面值传递,形参是副本,函数修改不影响原变量,c 语言函数大全及详解里面地址传递传入指针,可以修改外部原变量。
【免责申明】
本内容 c 语言函数大全及详解只收录入门高频函数,完整标准库函数数量很多,进阶可以查阅 ANSI C 标准库手册,函数参数细节以官方手册为准。


