首页 > 你问我答 >

问 c 语言函数大全及详解 标准库函数与自定义函数

2026-11-05 08:41:59
最佳答案

答

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.hprintf格式化输出
stdio.hscanf格式化输入
math.hsqrt平方根
math.hpow幂运算
string.hstrlen字符串长度
string.hstrcpy字符串拷贝
stdlib.hmalloc动态内存申请
stdlib.hrand随机数

七 重点易错知识点

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 标准库手册,函数参数细节以官方手册为准。