【C语言—零基础第九课】函数中的爱恨情仇

举报
昵称: 发表于 2022/03/27 15:01:36 2022/03/27
【摘要】 ​目录什么是函数函数的定义函数的声明函数的返回值函数的参数函数的调用参数调用递归调用函数的值传递什么是函数我们举个例子,你现在是老板你要求你的秘书去完成一项任务你可以给他说让他去做某一项任务,也可以不给他说让他去做某一项任务(暗示他)当然你得是老板。只要你是老板你就可以无限次的让秘书去做某一项任务,并且他没有怨言。我们看一下函数的文字定义:函数是一段可以重复使用的代码,用来独立地完成某个功能...

​函数中的爱恨情仇

目录

什么是函数

函数的定义

函数的声明

函数的返回值

函数的参数

函数的调用

参数调用

递归调用

函数的值传递



什么是函数

我们举个例子,你现在是老板你要求你的秘书去完成一项任务你可以给他说让他去做某一项任务,也可以不给他说让他去做某一项任务(暗示他)当然你得是老板。只要你是老板你就可以无限次的让秘书去做某一项任务,并且他没有怨言。

我们看一下函数的文字定义

函数是一段可以重复使用的代码,用来独立地完成某个功能,它可以接收用户传递的数据,也可以不接收。接收用户数据的函数在定义时要指明参数,不接收用户数据的不需要指明,根据这一点可以将函数分为有参函数和无参函数。

函数的定义

函数定义的格式:

返回值类型 函数名 (参数,参数,……)

{

执行语句

}

#include<stdio.h>
void fun (){
		printf("HelloWold");
}
int main(){
	fun();
	return 0;
} 

注意:

1.函数应该先定义后使用

2.C源程序开始于主函数,结束于主函数。(主函数就是main函数)

3.实参负责传递,形参负责接受,函数调用时将实参赋予给对应的形参

实参也就是实际参数,形参也就是形式参数。

实际参数在主函数中,进入调用的函数就不可以使用了。就需要传递形参了,形参数的作用域是被调用的这个函数内,出了这个函数便不起作用了。形式参数无法改变实际参数的值。

注意:函数可以嵌套调用,但是不可以嵌套调用

函数的声明

函数应先定义后调用,如果函数的调用出现在定义之前,则要对函数进行声明。

#include<stdio.h>
void fun();//函数的声明 
int main(){
	fun();
	return 0;
}
void fun (){
		printf("HelloWold");
} 


函数的返回值

有返回值

形式1 : return(表达式)

#include<stdio.h>
int fun();//函数的声明 
int main(){
 printf("%d",fun())	;
	return 0;
}
int fun (){
		return (1+2);
} 

形式2 :return 表达式;

#include<stdio.h>
int fun();//函数的声明 
int main(){
 printf("%d",fun())	;
	return 0;
}
int fun (){
		return 3+2;
} 

形式3 :通过return 语句,函数只能返回一个值

#include<stdio.h>
int fun();//函数的声明 
int main(){
 printf("%d",fun())	;
	return 0;
}
int fun (){
		return 10;
} 

默认返回值类型是int类型

无返回值 void

#include<stdio.h>
void fun();//函数的声明 
int main(){
	fun();
	return 0;
}
void fun (){
		printf("HelloWold");
} 

 注意

void定义的函数体内不能有return语句

void定义的函数不能拿来给变量赋值

返回值指return后边的值


函数的参数

函数的分类:

形参:定义函数时的形参

实参:调用函数时的参数

参数的传递

  1. 实参单向传递给形参数
  2. 实参,形参类型顺序个数一一对应
  3. 形参定义时不占用空间,调用时系统分配空间


函数的调用

函数的调用格式

1.语句调用

Fun(x,y);


2.表达式调用

A=fun(x,y);

参数调用

将函数的返回值作为实参进行调用,称为函数的参数调用

#include<stdio.h>
int fun (int x,int y){
		return y-x;
} 
int main(){
	int a=10,b=5;
 printf("%d",fun(a,fun(a,b)))	;
	return 0;
}

递归调用

递归条件:

1.函数主要的功能

2.明确的结束条件

3.找出函数的等价关系式

#include<stdio.h>
int fun (int x){
	if(x==1){//结束条件
		return 1;
	}
	return  x+fun(x-1); //函数关系
} 
int main(){

 printf("%d",fun(10));

}

函数的值传递

函数的参数传递分为地址传递(指针会说到)和值传递

注意:

实参的类型可以与实参类型不一致,以形参类型为准

实参与形参各占不用的存储单元

形参需单独定义,属于临时变量,调用时为其分配存储单元,函数调用结束后释放其存储单元。

函数默认的类型为int型,可省略。

函数返回值的类型是由定义函数时的返回值类型决定的。

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。