函数 | 形参 | 返回值 | 函数声明 | 调用 |
格式 | 类型+标识符(具体显示看下方) | int func(int a)函数定义的位置: 主函数上方:此时可以省略函数声明 主函数下方:此时需要在主函数上方添加函数声明(具体显示看下方) |
当函数定义在主函数下方时,需要将函数在主函数上方声明,直接将函数头原样复制到主函数上面,声明语句后加 ; | 将被调用函数的函数头复制到被调用处,处理参数和返回值,调用语句结束加 ; |
特性 | 类型明确,形参列表逗号隔开 | C 语言中一个函数如果希望正常返回一个值,必须要使用 return,一个函数只能返回一个值 | 程序中除了主函数,剩下的都叫子函数。子函数可以相互调用,主函数可以调用子函数。编写的子函数如果想要发挥作用,则必须在主函数中调用 | |
功能 | 提供函数内部使用,外部数据进入函数的入口 | 函数内部的数据如果想发送到函数的外部,则必须要通过函数的返回值类型 | 告诉系统和使用者该函数可用 | 从调用处跳转到函数体内,运行完再回到被调用处,接着往下运行 |
设计原则 | 从问题的可变量思考实现函数功能需要什么样的数据 | (1) 外部是否需要函数的返回值(2) 如果需要,则函数需要什么样的返回值希望函数运算后有什么样的结果 | 处理被调用函数的参数和返回值 | |
补充 | 函数参数等价于已定义过的变量,可以直接在函数体内使用 | 函数声明的函数头必须和函数定义的函数头一模一样 | 不同的函数体内变量可以同名,但是同一个函数体内变量不能同名 | |
格式具体显示 | 1. 参数类型是 void——直接删掉 void | 2. 参数类型是非 void——根据形参列表依次传参 | 1. 返回值类型是 void——直接删掉 void | 2. 返回值类型是非 void |
函数声明: void func(void); | 函数声明: void func(int a,char b,float c); | eg: | (1) 是否需要该函数的返回值 | |
函数调用: void func(); | 函数调用:依次给 func 函数传入整型数据(int a) ,字符数据(char b) ,实型数据(float c) | 函数声明: void func(void); | 不需要,则直接忽略 | |
如果传参的类型不一致,不一定出现语法错误,但是容易导致程序无法得到预期效果 | 函数调用: func(); | 如果需要,则对应处理 | ||
传参的方式: | (2) 处理方式 | |||
1. 给参数传递同类型的数据 | ①直接将函数整体作为返回值 | |||
2. 传入参数的数量必须和形参列表数量一致 | eg: | |||
3. 数据可以是常量,也可以是变量 | 函数声明: int func(void); | |||
4. 函数传参时,如果是同类型的变量,可以直接传递变量名 | 函数调用: printf(“%d\n”,func()); | |||
eg: | ②定义和返回值同类型的变量接收返回值 | |||
char x = ‘0’; | eg: | |||
float y = 1.2; | 函数声明: int func(void); | |||
传参时: void func(5,x,y); | 函数调用: | |||
int ret; | ||||
ret = func(); printf(“%d\n”,ret); |
||||
文章评论(0条评论)
登录后参与讨论