06:函数

本文详细介绍了函数的概念、如何定义函数、return的作用、代码实例,以及函数声明和形参实参的区别,还涵盖了全局变量和局部变量的使用。
摘要由CSDN通过智能技术生成

1、什么是函数

   …是一种工具,能够完成独立功能的代码块,每个独立的功能都可以用一种函数去实现。避免了重复性操作,有利于程序的模块化。

/*比较2个数之间的最大值*/
#include <stdio.h>

int main(void)
{
	int i,j,k,m,n,h;
	i = 1,j = 2,k = 3,m = 4,n = 5,h = 6;
	if(i>j)
		printf("%d\n",i);
	else
		printf("%d\n",j);
		
	if(k>m)
		printf("%d\n",k);
	else
		printf("%d\n",m);
		
	if(n>h)
		printf("%d\n",n);
	else
		printf("%d\n",h);

	return 0;
}

2
4
6

若使用函数进行书写代码:

#include <stdio.h>


void max(int a,int b)
{
	if(a>b)
		printf("%d\n",a);
	else
		printf("%d\n",b);
}

int main(void)
{
	int i,j,k,m,n,h;
	i = 1,j = 2,k = 3,m = 4,n = 5,h = 6;

	max(i,j);
	max(k,m);
	max(n,h);
	
	return 0;
}

2
4
6

可以看出实现的结果都是一样的,第二段代码利用函数将“比较2个数之间的最大值”的功能进行模块化,当进行2个数比较时,直接调用即可。

void max(int a,int b)// void是函数返回值为空值,max是函数名,int a,int b是定义函数的2个形式参数。
程序执行时,先从主函数进入,按照顺序执行,当执行到函数时,将实际参数(i,j,k,m,n,h)发送给
形式参数。然后执行函数里面的功能。

函数举例2:`

#include <stdio.h>

int f(void)//void表示此函数不能接收参数,int表示函数返回值为整型。
{
	return 10;//向主调函数返回10
}
int main(void)
{
	int i = 100;
	i = f();
	printf("%d\n",i);
	return 0;
}

10

所以综上:
      函数能够接收数据[当然也可以不接受数据]
      能够对接受的数据进行处理
      能够将数据处理的结果返回[当然也可以不返回任何值]
      函数是个工具,它是为了解决大量类似问题而设计的函数可以当傲一个黑匣子

2、如何定义一个函数

格式:
        函数的返回值 函数名(函数的形式参数)
        {
              函数的执行体
        }

3、函数中return 的作用

3.1:作用1

函数返回值的类型也称为函数的类型,如果函数名前的返回值类型和函数执行体中的return表达式;中表达式的类型不同的话,则最终函数返回值的类型以函数名前的返回值类型为准。

#include <stdio.h>

int f(void)//void表示此函数不能接收参数,int表示函数返回值为整数。
{
	return 10.5;
}
int main(void)
{
	double i;
	i = f();
	printf("%lf\n",i);
	return 0;
}

10.000000

3.2:作用2

如果表达式为空,则只终止函数,不向被调函数返回任何值

#include <stdio.h>

void f()
{
	int i;
	for(i=0 ;i<=4 ;++i)
	{	printf("你好\n");
	 return ;//只终止函数,不向被调函数返回任何值
	}
}

int main(void)
{
	f();
	return 0;
}

你好

4、代码案列

/*判断一个数是不是素数*/
#include <stdio.h>

void f(int j)
{
	int i;
	for(i=2 ;i<j ;++i)
	{
		if(j%i==0)
		break;
	}
	if(j == i)
	printf("是素数\n");
	else
	printf("不是素数\n");
}

int main(void)
{
	int j;
do
{   printf("请输入:\n");
	scanf("%d",&j);
	f(j);
}
	while(1);
	return 0;
}

请输入:
25
不是素数
请输入:
33
不是素数
请输入:
6
不是素数
请输入:
5
是素数
请输入:

5、注意的问题

5.1:函数的声明

①若被调用的函数(函数的定义)调用函数的后面,则要在调用函数前面声明被调用的函数。
②对库函数的声明是通过 #include <库函数所在文件的名字.h> 来实现的。

#include <stdio.h>

void f(void);//f()函数的声明

int main()
{
	f();
	return 0;
}

void f(void)
{
	printf("你好\n");
}

你好

5.2:形参和实参

①形参和实参的个数和位置都要一一对应,数据类型必须相互兼容。

6、全局变量和局部变量

全局变量:在所有函数外部定义的变量
全局变量使用范围:从定义位置开始到整个程序结束局部变量

#include <stdio.h>

int k = 1;//全局变量k,其在函数f和主函数中都能使用

void f()
{
	printf("%d\n",k);
}
int main(void)
{
	f();

	return 0;
}
#include <stdio.h>

void f()
{
	printf("%d\n",k);
}

int k = 1;//全局变量k在函数f后面,所以函数f不能使用k。

int main(void)
{
	f();

	return 0;
}

lkm.exe - 1 error(s), 0 warning(s)

局部变量:在一个函数内部定义的变量或者函数的形参

  • 10
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值