文章目录

  • 前言
  • 一、函数的定义与调用
  • 二、返回值
  • 三、变量空间
  • 总结

前言

在遇到重复代码块时,我们如果不想把每一个都写出来,这就要用到函数了。函数可以让我们的代码更加简洁,有更高的可读性。


一、函数的定义与调用

1,函数的定义

定义:函数是一段可以重复使用的代码,用来独立地完成某个功能,它可以接收用户传递的数据,也可以不接收。

接收用户数据的函数在定义时要指明参数,不接收用户数据的不需要指明,根据这一点可以将函数分为有参函数和无参函数。

函数构成:函数头(函数名,参数表,返回类型)

                  函数体

使用Function函数解决if else分支过多问题_开发语言

参数表:参数的类型,参数的个数,参数的返回类型



2,函数的调用 

①调用格式:函数名(参数值);

②“()”起到手了表示函数调用的重要作用

        即使没有参数也需要‘()’

③如果有参数,则需要给出正确的数量和顺序

④这些值会被按照顺序依次用来初始化函数中的参数

 函数要把参数写全,如果没有参数就要加void

例:void swap(void);

3,函数原型 

①函数头以‘ ; ’结尾,就构成了函数的原型

②函数原型的作用:函数名称

                                参数(数量及类型)

                                返回类型 

#include"stdio.h"
void summm(int begin,int end)
{
	int i,sum;

	for(i=begin,sum=0;i<=end;i++)
	{
		sum+=i;
	}
	printf("%d到%d的和是%d\n",begin,end,sum);
}
int main()
{
	summm(1,10);
	summm(20,30);
	summm(35,45);
return 0;
}

3.函数的先后关系

c的编译器都是自上而下的顺序的分析代码,所以函数原型最好放在前面。

如果不放在前面,编译器也是可以读取的,编译器会猜测你所调用的函数里面的变量类型(大部分都是int型变量)

也可以在前面放一个函数声明,在后面放上函数主体

(函数声明,在函数头后面加一个“;”)


二、返回值

1.函数中的返回值

概念:return停止函数的执行,并送回一个值

表达方式:①return;

                  ②return 表达式;

作用:可以赋值给变量

           可以再传递给函数

           可以丢弃(例如:表达方式①)

大多数函数都有返回值,调用自己的函数时,它的返回值会赋值给使用这个函数的变量

例:

#include"stdio.h"
int max(int a, int b)
{
	int ret;
	if(a>b)
	{
		ret = a;
	}
	else
	{
		ret = b;
	}
	return ret;                  //返回值为ret=6
}
int main()
{
	int c;
	c = max(5, 6);               //变量c接收返回值ret
    c = max(c, 7);               //可以赋值给变量
	c = max(max(c, 8), 9);       //可以赋值给函数
    printf("%d\n", c);
	return 0;
}

2.没有返回值的函数

构成:void 函数名(参数表)

对于这种函数,可以自己选择是否带return,但是带return时就不能带值

在调用的时候不能做返回的赋值

例:

void sum(int begin,int end)
{
    int i;
    int sum = 0;
    for( i=begin ; i<=end ; i++)
    {
        sum+=i;
    }
    printf("%d到%d的和是%d\n",begin,end,sum);
}

 三、函数中的变量

1.本地变量
概念:函数的每次运行,就产生了一个独立的变量空间,在这个空间中的变量,是函数的这次运行所独有的
定义在函数内部的变量就是本地变量。参数也是本地变量

在不同函数中可定义相同名称的变量,但它们的可以看做是另外两个变量,与其他函数里面的变量毫无关系

例:

#include"stdio.h"
void swap(int a, int b);

int main()
{
	int a = 6, b = 7;
	swap(a, b);
	printf("a=%d , b=%d", a, b);
	return 0;
}

void swap(int a, int b)
{
	int t = a;
	a = b;
	b = t;
}

运行结果毫无改变 

使用Function函数解决if else分支过多问题_开发语言_02

 

2.变量的生存期

什么时候这个变量开始出现了,到什么时候它消亡了,在这个期间就是变量的生存期

3.变量的作用域

在(代码的)什么范围内可以访问这个变量(这个变量可以起作用),这个区间就是作用域

4.本地变量的规则 

·本地变量可以是定义在函数的块内,也可以定义在语句的块内

·程序运行进入这个块之前,其中的变量不存在,离开这个块,其中的变量就消失了

·块外面定义的变量在里面仍然有效

·块里面定义了和外面同名的变量则掩盖了外面的,不能在一个块内定义同名的变量

·本地变量不会被默认初始化

·参数在进入函数的时候被初始化了


总结

函数是一段可以重复使用的代码,用来独立地完成某个功能,使用函数可以让代码更加简化,增强可读性,更便于理解。但在使用前要先想好定义的函数是什么。