栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

C语言之函数

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

C语言之函数

目录

为什么要用到函数

函数的三要素

函数的封装和调用

形式参数和实际参数

局部变量:在每个函数中的所定义的变量就是局部变量,指在所在函数起作用。

三步运算符:例: temp = x>y? x:y;

函数的嵌套

函数的递归

数组与函数

二维数组与函数

合法写法:int a[3][4]

全局变量

函数小练习

函数与冒泡排序法

函数与简单排序法

补充


  • 为什么要用到函数

避免代码冗长

模块化的设计思路

按功能划分,每个函数代表一个功能,而函数的名字要体现函数的功能含义,类似变量标识符 y = f(x)

  • 函数的三要素

函数的要先定义再使用。

定义(三要素):函数名、参数列表、返回值。

  • 函数的封装和调用

无参函数和有参函数

Void函数不需要return

//定义无参函数
void Wellcome()
{
	puts("=====================");
	puts("HeLL World!");
	puts("=====================");
}

//形式参数,需要包含变量类型,变量名
int getDataFromX(int x)
{
	int y;
	y = 2*x;
	return y;
}

int add (int x,int z)
{
	int y;
	y = x+z;
	return y;
}

void setA()//空函数
{
	
}
int main ()
{
	int x,y,z;
	
	setA();
	Wellcome();
	
	puts("请输入一个整数:");
	scanf("%d",&x);
	y = getDataFromX(x); //函数调用
	printf ("x=%d y=%dn",x,y);
	
	
	puts("请输入一个整数:");
	scanf("%d",&x);
	puts("请再输入一个整数:");
	scanf("%d",&z);
	y = add(x,z);
	printf ("%d+%d=%dn",x,z,y);
	
	
	return 0;
}
  • 形式参数和实际参数

也就是形参和实参

形参是指定义函数时用到的变量,实参是指在调用函数时所使用的变量或常量;

生命周期,指形参被调用到调用结束时的周期

传递参数,传递的是值。形参和实参值相同,地址空间不同。

  • 局部变量:

  • 在每个函数中的所定义的变量就是局部变量,指在所在函数起作用。

  • 三步运算符:例: temp = x>y? x:y;

  • 函数的嵌套

  • 函数的递归

#include 
#include 

unsigned  int getReson (int x)//long int 长整型也是4个字节  unsigned无符号整型
{
	unsigned  int y;
if (x > 16){
	printf("越界n");
	exit(-1);
}
if (x == 1){
	y = 1;
}else {
	y = getReson(x-1) * x;
}
	return y;
}

int main ()
{
	//递归函数,一边用于求阶乘或其他特殊情况
	int x;
	unsigned  int y;
	
	printf ("请输入你要计算的阶乘:");
	scanf("%d",&x);
	
	y = getReson(x);
	
	printf("%d的阶乘是:%ldn",x,y);
	
	return 0;
}
  • 数组与函数

数组与函数的结合目前实际应用不大,着重数组名当成实际参数。

void printfArry(int a[],int len)//形参中不存在数组的概念,即便中括号定义了数组的大小也没用
	                     //传递的是数组的首地址,再操作系统中用8个字节(32位)表示一个地址
	                     //数组是传递地址,而其他不是传递地址而是数值传递
{
	int i;
	for (i=0;i 
  • 二维数组与函数

合法写法:int a[3][4]

                  int a[][4]

不合法写法:int a[][]

定义二维数组的函数时,必须计算二维数组中一维数组中元素的个数

#include 

void initArry (int  arry[][4],int hang,int lie)
{
	int i,j;
	
	for(i=0;i 

全局变量

作用范围:整个.c文件

在函数外直接定义变量称为全局变量,放在函数与函数之间,只作用于后面的函数。

#include 

int max;
int min;

float getAvr(int scores[],int len)
{
	int i;
	int sum = 0;
	max = min = scores[0];
	
	for(i=0;i scores[i]){
			min = scores[i];
		}
	}
		return (float)sum/len;
}

int main ()
{
	//全局变量
	int scores[]={11,21,35,49,59,68,78,89,99,100};
	float avr;
	
	avr = getAvr(scores,sizeof(scores)/sizeof(scores[0]));
	printf("最大值是%d,最小值是%d,平均分是:%.2f",max,min,avr);
	
	return 0;
}

函数小练习

函数与冒泡排序法
#include 

void initNum(int a[],int len)
{
	int i;
	
	for (i=0;i 

函数与简单排序法
#include 

void initArry(int arry[],int len)
{
	int i;
	
	for(i=0;i 

补充

ASCⅡ码

 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1000995.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号