C语言基础——函数

1.函数的作用?

       函数分为库函数和自定义函数。库函数就是C语言系统自带的函数,而自定义函数就是用户自定义的函数。无论那种函数,充分发挥其功能,都可以使程序容易编写,阅读,调试和修改。

2.怎样定义函数,如何调动函数,定义函数与声明函数有和区别?

以下已该代码为例:

#include<stdio.h>
int  sum(int a,int b,int c);

int main (){
	int a,b,c,d;
	scanf("%d %d %d",&a,&b,&c);
	d=sum(a,b,c);
	printf("%d",d);
} 


int sum(int c,int a,int b){
	int n[4]={0},i=c;
	n[1]=c;n[2]=a;n[3]=b;
	for(int j=2;j<4;j++){
		if(i<=n[j]){
			i=n[j];
		}
	}
	return i;
}

定义函数

函数的定义的一般格式:

函数类型 函数名 (形式参数表){
    函数实现过程; 

#其中函数类型指的是函数运行后返回的数据类型

#注意函数的定义可以放在main函数之后,也可以放在函数的声明之后(此时函数的声明就可有可无了)

例如:

#该函数为自定义函数,函数类型——int;函数名——sum;形式参数表——int c,int a,int b;后面的所用为函数实现过程。

int sum(int c,int a,int b){
	int n[4]={0},i=c;
	n[1]=c;n[2]=a;n[3]=b;
	for(int j=2;j<4;j++){
		if(i<=n[j]){
			i=n[j];
		}
	}
	return i;
}

定义函数与声明函数的区别

定义函数声明函数
(首部)末尾有无分号没有
能否删除不能

调动函数

       调用前提:调用库函数则在程序最前面必须用#include命令包含头文件(如在调用printf函数之前,需要运行#include<stdio.h>);在调用自定义函数时,则必须要有相对应的函数定义。

      函数的调用过程:在执行c语言程序时,先从main函数开始,如果遇到某个调用的函数,则停止执行main函数,转而执行相应的函数,该函数执行完后,再返回到main函数暂停的位置继续执行main函数。

可以理解为:

main函数->被调用的函数->main函数

函数调用形式:

函数名(实际参数表)

例如例子函数中的

sum(a,b,c)

对于计算功能的函数,函数调用后有两种情况;

赋值语句:例如,d=sum(a,b,c);

输出函数的实参:例如,printf(“%d”,sum(a,b,c));

3.在调动函数时,参数是如何传递的?

        已知主调函数(main)的参数为实参;函数定义时,位于函数首部的参数为形参。

行参与实参必须一一对应,两则数量相同,类型尽量一致。当函数被调用时实参的依次被赋值给形参。

#注意形参的改变一般是不会改变实参的

4.变量与函数有什么关系,如何使用局部变量和全局量?

      一般来说局部变量在函数(复合语句)中被定义,并在该函数(复合语句)中被使用。而全局变量则被定义在所有函数之外,被层序中所有函数共同使用。

#注意:在一个函数中如果该函数的局部变量与全局变量同名,则同名的全局变量在该函数中无法使用;相识的还有,当函数局部变量与复合语句局部变量相同时则以复合语句变量为准。

5.什么是静变量?

        变量分为两种:一种是自动变量,当变量的生存周期结束后便会消失;另一种是静态变量(一种特殊的局部变量),其生存周期会持续到程序结束。

#全局变量和静态局部变量都存储在静态存储区,而动态变量存储在动态存储区。

  • 8
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 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 的各个生命周期阶段插入自定义的钩子函数。 这使得开发者可以在对象加载、修改、删除等操作时执行额外的逻辑。
sscanf函数C语言中一个非常常用的函数,它可以将一个字符串按照指定的格式转换成相应的数据类型。在嵌入式开发中,sscanf函数也是非常常见的,因为很多时候需要从串口或者其他外部设备中读取数据,并将其转换成相应的数据类型进行处理。下面是一些sscanf函数的使用技巧: 1. 使用sscanf函数时一定要注意格式字符串的正确性。格式字符串中的占位符必须与待转换的数据类型相对应,否则会发生未知错误。 2. 如果待转换的字符串中包含多个数据,可以使用多个占位符进行转换。例如,如果待转换的字符串为"1,2,3",可以使用" %d,%d,%d"的格式字符串进行转换。 3. 可以使用sscanf函数的返回值来判断转换是否成功。如果返回值等于待转换字符串的长度,则说明转换成功,否则转换失败。 4. 如果待转换的字符串中包含浮点数,可以使用"%f"或者"%lf"的格式字符串进行转换。 5. 如果待转换的字符串中包含十六进制数,可以使用"%x"的格式字符串进行转换。 6. 如果待转换的字符串中包含字符或字符串,可以使用"%c"或者"%s"的格式字符串进行转换。 7. 如果待转换的字符串中包含指针类型的数据,可以使用"%p"的格式字符串进行转换。 总之,在使用sscanf函数时一定要注意格式字符串的正确性,否则很容易出现转换错误的情况。同时,还应该注意sscanf函数返回值的判断,以确保转换的正确性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值