当前位置: 首页 > news >正文

函数(Num008)

目录

一、函数的定义

二、函数调用

三、函数递归

四、局部、全局、静态变量

 代码示例:


一、函数的定义

函数是完成一定功能的代码,我们编写函数使它完成一定的功能

  • 定义函数的基本格式:
  1. 类型名 函数名(函数参数1,函数参数2,····)
  2. {
  3. 函数体
  4. return ;
  5. }


如:
int max(int x,int y)

{
int z;
z=x>y?x:y;
return z;

}//求最大值函数,返回两个数之间的最大值

数据类型:

  1. void表示没有返回值,如果是其他的数据类型表示有返回值
  2. 如果写的是其他的数据类型,表示在函数中需要使用return 值;必须要有
  3. 在定义的时候通过返回值类型来决定返回的值

 形参列表:

  1.    没有写表示不需要传参直接调用函数即可使用
  2.    如果有参数,那么必须传入和参数类型一致的数据

  •     数据类型:这个函数执行完你要想返回一个什么类型的数据,那么这里就写上什么类型
  •     形参列表:这个函数的执行你需要一些什么外部的数据,那么就在这里定义变量接收
  •     代码:可以使用实参列表中的变量,来实现自己的功能,更加数据类型来决定要返回什么值

二、函数调用

  • 调用函数的基本格式:

  1. 函数名字(实参列表);

实参列表:如果函数没有形参列表,那么不需要写任何内容

  • ------程序执行的过程------
  • 从主函数开始,从上往下。
  • 如果有循环与分支会根据相关内容改变过程
  • 定义一个函数,它是不会自己执行的
  • 只有在代码中调用它才会执行,程序的执行从函数调用处跳转到函数定义处执行代码
  • 函数执行完,会跳回函数调用处继续往下执行

三、函数递归

  • 一个函数在执行过程中直接或间接的调用自己

四、局部、全局、静态变量

  • 局部变量:

    只能在局部中使用,不能拿出局部使用
    生命周期:变量出了局部就死亡
    在不同的局部,变量名字可以重复
    比如:定义在函数中的形参和变量,定义在{}内的变量

  • 全局变量:

    在全局都可以使用(在定义之后都能使用)
    生命周期:程序开始就会被定义,程序结束才会被释放
    定义变量,写在函数的外面。通常都是定义在主函数的上面

  • 静态变量:

    定义方式:在定义变量的前面加上一个static 关键字,那么整个变量就是静态变量了
    static int x;

    在程序开始只会只会被定义一次,不会被重复定义,程序结束生命周期结束

 代码示例:

#include <stdio.h>//void fun2()
//{
//	printf("hello world\n");
//}//int fun3()
//{
//	int x = 0;
//	int y = 1;
//	if (x)
//		return x + y;	//返回值
//	//warning C4715: “fun3”: 不是所有的控件路径都返回值
//}//int fun4()
//{
//	//返回值只能返回一个值,不能多个
//	//在函数中执行return的时候,会从return处直接结束函数的执行
//	return 1, 2, 3, 4, 5, 6, 7;	//返回的是最后一个
//	printf("1111111\n");
//}//void fun5()
//{
//	printf("1\n");
//	return;	//在函数中执行return的时候,会从return处直接结束函数的执行
//	printf("2\n");
//}
//形参1=实参1,形参2=实参2,...形参N=实参N
//int x = a;	//值传递,不能通过形参修改实参的值
//void fun6(int x, int y, int z)
//{
//	//printf("%d %d %d\n", x, y, z);
//	x = 9;
//	y = 9;
//	z = 9;
//}
//
//void fun(int r, int c);	//函数声明	//需要在调用函数之前声明//Stack overflow  栈溢出,通常是死递归
//void fun7(int i)
//{
//	if (i != 6)
//	{
//		fun7(i + 1);
//		printf("%d\n", i);
//	}
//}//递归求1~N的和
/*
f(1)=1
f(2)=f(1)+2
f(3)=f(2)+3
f(4)=f(3)+4
f(n)=f(n-1)+n
*///int fun1(int n)
//{
//	if (n == 1)return n;
//	return fun1(n - 1) + n;
//}//斐波那契数列
//1 2 3 5 8 13 21
/*
n>=3
f(1)=1
f(2)=2
f(n)=f(n-1)+f(n-2)*///int fun2(int n)
//{
//	if (n == 1 || n == 2)
//		return n;
//	return fun2(n - 1) + fun2(n - 2);
//}//int x;	//全局变量
//
//void fun9()
//{
//	int x = 9;
//	printf("%d\n", x);	//如果全局变量和局部变量同名,那么使用就近原则
//}void fun10()
{static int x = 10;printf("%d\n", x);x++;
}int main()
{fun10();fun10();fun10();fun10();//fun9();//printf("%d\n", x);/*printf("%d\n", fun2(7));*///printf("%d\n", fun1(100));//fun7(1);//fun(1, 1);//fun(3, 3);//fun(6, 5);//int a = 1, b = 2, c = 3;//fun6(a,b,c);//int x = a;//x = 99;//printf("%d %d %d\n", a, b, c);//fun5();/*printf("%d\n", fun4());*///int x = fun3();//printf("%d\n", x);//fun2();//fun();//printf("\n");//fun();getchar();getchar();return 0;
}//void fun(int r, int c)
//{
//	for (int i = 0; i < r; i++)
//	{
//		for (int j = 0; j < c; j++)
//		{
//			printf("* ");
//		}
//		printf("\n");
//	}
//}
http://www.dtcms.com/a/399612.html

相关文章:

  • MySQL8.0版本在Windows下进行安装
  • 站长seo工具图文素材库免费
  • 前端核心框架vue之(指令篇1/5)
  • 山东小语种网站建设免费高清视频素材app哪里找
  • 嵌入式Python环境深度解读与精益裁剪指南
  • 如何排查Windows事件ID 7000 服务启动失败
  • Java面试题大全1000+面试题附答案详解
  • LangChain:LLMs和ChatModels介绍、LangChain 集成大模型的本地部署与 API 调用实践、提示词prompt、输出解析器、链
  • spring中手动事务控制(提交、回滚事务)
  • 高端医疗网站开发用广州seo推广获精准访问量
  • 如何让本地使用 Ollama 部署的开源大模型(LLM)识别图片和 Excel 文件
  • 高低温试验有哪些类型?委托第三方做高低温试验的流程
  • print!/println!宏详解
  • 谢岗镇仿做网站经营性商务网站建设需要备案吗
  • 崂山区建设局网站郑州付费系统网站开发建设
  • xxl-job 执行器在 host 网络模式下注册到错误 IP 的问题与解决方案
  • 网站建站 seowordpress防止机器人注册
  • 网站建设需要服务器支持 吗营销活动
  • Python学习笔记:正则表达式
  • In VI, when an arrow key is pressed, a character (e.g. “A“) is sent.
  • pytorch工具箱(二)
  • css `isolation: isolate`
  • 杭州企业网站制作西安 网站开发
  • 数据结构算法真题
  • 容桂网站建设联系方式触屏网页界面设计
  • 网站设计方案公司建设免费网站制作
  • 国产CAD皇冠CAD(CrownCAD)三维建模教程:汽车水泵
  • 网站建设存在问题整改报告网站常用图标素材
  • 【Redis】缓存击穿、缓存穿透、缓存雪崩的解决方案
  • 东营外贸型网站设计怎么做点图片链接网站