目录
函数的思想
从上到下,逐步求解的过程
核心——“拆”
一般一个功能对应一个函数
函数定义
表示把功能实现出来
类型标识符 函数名(形式参数)
{
函数体代码
}
类型标识符
数据类型——表示函数要带出的结果的类型(返回结果)
注意:
数组类型不能做函数返回结果的类型
如果函数不需要带出的结果的类型,一般设置为void
如果类型为void,一般不写return(非要写就写return;)
如果返回结果的类型与类型说明符不一致,最终结果的类型都会转为类型说明符表示的类型
类型说明符如果不写,则默认是int类型
函数名
标识符——命名规则符合标识符命名规则
(形式参数)
表示该函数需要用到的数据,表明将来使用时需要用到的实际参数
注意:
形参变量必须明确指定类型 如add(int num1,num2)为错误写法
实参和形参对应关系——类型匹配、个数相同、顺序一一对应
函数传参传递的是实际参数的数值(值传递)
如果不需要接收实际参数,形参一般设置为void
函数体代码
实现函数具体功能的那部分代码
函数定义的位置
- main函数之前
- main函数之后
函数的定义顺序并不影响程序的正确性,但如果在调用一个函数之前没有声明(即提供函数的原型),会导致编译错误或警告。
如果在 main
函数之后定义一个函数,需要在 main
函数之前声明该函数,以便在 main
函数中调用它时不会出现编译错误。
函数声明格式:返回类型 函数名(参数类型 参数名, ...);
函数定义在main函数中在linux系统中可以使用(这是gnu拓展的功能),但是标准C语言不支持
eg:实现两个数求和
- 先确定函数名
sum 、add
- 考虑函数需要用到哪些数据——形参
处理两个整数
形参的写法:数据类型 形参变量名1,数据类型 形参变量名2
int num1,int num2
- 处理数据——函数体的具体实现
求和
sum = num1+sum2;
- 考虑需不需要带出结果——(返回值对应)类型说明符
return 语句;
return(表达式);
return表示从函数中返回,意味着函数结束。
#include<stdio.h>
//函数定义
add(int num1,int num2)
{
int sum;
sum = num1+num2;
return sum;
}
int main(void)
{
int ret;
//函数调用
ret = add(1,2);
prinrf("ret = %d\n",ret);
return 0;
}
函数调用
表示使用功能
函数名(实际参数);
加不加分号;取决于调用的场合和方式
int add(1,2);——错误的写法 add(1,2);——正确写法
- 函数语句
- 函数表达式
- 函数参数