(六)函数

一、函数
1、函数的概念:
在C语言中,函数指的是具有特定功能的代码块,由函数头和函数体组成。
2、函数的作用:
1》避免重复写代码
2》可以使程序模块化,提高程序开发效率
3》便于后期对软件的更新和维护
3、函数的定义:
返回值类型 函数名(类型 参数名,类型 参数名,类型 参数名)     函数头
{ 函数体
语句;
语句;
......
return 数据;

}

<pre name="code" class="cpp">//函数定义
int fun(int x,int y)   //被调用函数
{
	int b;

	b = x * y;
	
	return b;
}

int main(void)  //调用函数
{
	int a,b;
	int s;

	scanf("%d%d",&a,&b);	
	//s = a * b;
	s = fun(a,b);   //函数调用

	printf("%d * %d = %d\n",a,b,s);	
	
	return 0;
}

 4、函数的基本概念: 
1》函数的定义(实现): 
指的是一段代码的封装 
2》函数的调用: 
是一条语句,通常会给函数传递一些参数(数据) 
3》函数的声明: 
当函数的定义写在函数调用之后时,需要对该函数进行声明,声明是一条语句,即:函数头 加 ; 
#include <stdio.h>

int fun(int x,int y);   //函数的声明

int main(void)  //调用函数
{
	int a,b;
	int s;

	scanf("%d%d",&a,&b);	
	//s = a * b;
	s = fun(a,b);   //函数调用

	printf("%d * %d = %d\n",a,b,s);	
	
	return 0;
}

//函数定义
int fun(int x,int y)   //被调用函数
{
	int b;

	b = x * y;
	
	return b;
}
4》函数的形参与实参
----》形参:形式参数
-----》在函数的头部定义的变量
-----》只能在该函数中使用
-----》形参的初始值是通过函数调用传递的
-----》在内存中有独立的空间
-----》一定是变量
----》实参:实际参数
-----》如果有定义,一定在调用函数中定义
-----》也只能在定义它的函数中使用
-----》通过函数调用语句传递给给形参
-----》实参可以是:常量,变量,指针,数组,结构体等
-----》在内存中有独立的空间
----》形参和实参的关系
-----》相互独立
-----》形参通过实参初始化

5、函数传参:
1》参数的传递方式
----》值传递
---》传的是数值
---》在被调用函数中,不能企图取改变实参
---》形参的类型和实参类型相同
----》地址传递
---》传的是地址
---》在被调用函数中,可以改变实参
---》形参的类型是实参类型的指针类型
2》传参的种类,根据实参可以将传参分为以下这几种情况
----》实参为常量:(字符串常量除外)

传参方式:值传递

----》实参为变量:(基本类型的变量)
---》值传递:

#include <stdio.h>

void fun2(int x,int y)
{
	int t;
	printf("in_fun2:%d,%d\n",x,y);
	t = x;
	x = y;
	y = t;
}
int main(void)  //调用函数
{
<span style="white-space:pre">	</span>int a,b;
<span style="white-space:pre">	</span>a = 3;
<span style="white-space:pre">	</span>b = 5;
<span style="white-space:pre">	printf("a = %d,b = %d\n",a,b);
<span style="white-space:pre">	</span>fun2(a,b);  //值传递
<span style="white-space:pre">	</span>printf("a = %d,b = %d\n",a,b);</span>
<span style="white-space:pre">	</span>
<span style="white-space:pre">	</span>return 0;
}
---》地址传递:
<pre name="code" class="cpp">#include <stdio.h>

void fun3(int* x,int *y)
{
	int t;
	t = *x;
	*x = *y;
	*y = t;
}

int main(void)  //调用函数
{
	int a,b;
	a = 3;
	b = 5
	
	printf("a = %d,b = %d\n",a,b);
	fun3(&a,&b);  //地址传递
	printf("a = %d,b = %d\n",a,b);
	
	return 0;
}
----》实参为指针
----》实参为数组
----》实参为结构体/共用体
----》实参为函数
6、全局变量
1》通常把在代码块中定义的变量称为局部变量,例如:
#include <stdio.h>

int main(void)  //调用函数
{   //代码块
	int a;  //局部变量
	a = 10;
	//代码块
	{
		int b;  //局部变量
		b = 20;
		printf("b = %d\n",b);
	}
	
	printf("a = %d\n",a);
	
	return 0;
}
2》通常把在所有代码块外定义的变量称为全局变量,例如:

 
<img src="https://img-blog.csdn.net/20160919233148148?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="" />
<span style="white-space:pre">	</span>3》全局变量的使用:
<span style="white-space:pre">		</span>----》可以在所有代码块中使用全局变量
<span style="white-space:pre">		</span>----》如果函数中定义了同名的局部变量,则该全局变量不能在该函数中使用,在该函数中所使用的只能是同名的局部变量




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
SQLAlchemy 是一个 SQL 工具包和对象关系映射(ORM)库,用于 Python 编程语言。它提供了一个高级的 SQL 工具和对象关系映射工具,允许开发者以 Python 类和对象的形式操作数据库,而无需编写大量的 SQL 语句。SQLAlchemy 建立在 DBAPI 之上,支持多种数据库后端,如 SQLite, MySQL, PostgreSQL 等。 SQLAlchemy 的核心功能: 对象关系映射(ORM): SQLAlchemy 允许开发者使用 Python 类来表示数据库表,使用类的实例表示表中的行。 开发者可以定义类之间的关系(如一对多、多对多),SQLAlchemy 会自动处理这些关系在数据库中的映射。 通过 ORM,开发者可以像操作 Python 对象一样操作数据库,这大大简化了数据库操作的复杂性。 表达式语言: SQLAlchemy 提供了一个丰富的 SQL 表达式语言,允许开发者以 Python 表达式的方式编写复杂的 SQL 查询。 表达式语言提供了对 SQL 语句的灵活控制,同时保持了代码的可读性和可维护性。 数据库引擎和连接池: SQLAlchemy 支持多种数据库后端,并且为每种后端提供了对应的数据库引擎。 它还提供了连接池管理功能,以优化数据库连接的创建、使用和释放。 会话管理: SQLAlchemy 使用会话(Session)来管理对象的持久化状态。 会话提供了一个工作单元(unit of work)和身份映射(identity map)的概念,使得对象的状态管理和查询更加高效。 事件系统: SQLAlchemy 提供了一个事件系统,允许开发者在 ORM 的各个生命周期阶段插入自定义的钩子函数。 这使得开发者可以在对象加载、修改、删除等操作时执行额外的逻辑。
SQLAlchemy 是一个 SQL 工具包和对象关系映射(ORM)库,用于 Python 编程语言。它提供了一个高级的 SQL 工具和对象关系映射工具,允许开发者以 Python 类和对象的形式操作数据库,而无需编写大量的 SQL 语句。SQLAlchemy 建立在 DBAPI 之上,支持多种数据库后端,如 SQLite, MySQL, PostgreSQL 等。 SQLAlchemy 的核心功能: 对象关系映射(ORM): SQLAlchemy 允许开发者使用 Python 类来表示数据库表,使用类的实例表示表中的行。 开发者可以定义类之间的关系(如一对多、多对多),SQLAlchemy 会自动处理这些关系在数据库中的映射。 通过 ORM,开发者可以像操作 Python 对象一样操作数据库,这大大简化了数据库操作的复杂性。 表达式语言: SQLAlchemy 提供了一个丰富的 SQL 表达式语言,允许开发者以 Python 表达式的方式编写复杂的 SQL 查询。 表达式语言提供了对 SQL 语句的灵活控制,同时保持了代码的可读性和可维护性。 数据库引擎和连接池: SQLAlchemy 支持多种数据库后端,并且为每种后端提供了对应的数据库引擎。 它还提供了连接池管理功能,以优化数据库连接的创建、使用和释放。 会话管理: SQLAlchemy 使用会话(Session)来管理对象的持久化状态。 会话提供了一个工作单元(unit of work)和身份映射(identity map)的概念,使得对象的状态管理和查询更加高效。 事件系统: SQLAlchemy 提供了一个事件系统,允许开发者在 ORM 的各个生命周期阶段插入自定义的钩子函数。 这使得开发者可以在对象加载、修改、删除等操作时执行额外的逻辑。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值