C语言 函数

文章介绍了C语言中函数的基本概念,包括作为模块化的手段,函数的声明、调用和定义过程。函数的参数是形参,数据在函数间通过值复制或地址传递。传值不可改变原数据,而传址则可以。文章还讨论了数组和长度在函数调用中的作用,以及return关键字的使用情况。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、函数基本概念

模块化·重构,函数与模块是同义词

函数(function)的意义:对一段流程结构的封装

函数有三种状态,分别是声明状态、调用状态、定义状态。正常来讲,在设计一个函数的过程,先声明,再调用最后再定义。

声明状态一般放在main函数外面,也就是全局位置。

将判断能否结婚的流程进行模块化重构:

#include <stdio.h>
void 判断结婚(int sex, int age);//声明
int main()
{
	/*重构基本思想*/

	/*函数(function)的意义:对一段流程结构的封装*/
	int age = 21;
	int sex = 0;
	判断结婚(sex, age);//调用

	/*函数的基本结构*/

 

	return 0;
}

void 判断结婚(int sex, int age)//定义
{
	if (sex)
	{
		if (age >= 22)
		{
			printf("男的 能\n");
		}
		else
		{
			printf("男的 不能\n");
		}
	}
	else
	{
		if (age >= 20)
		{
			printf("女的 能\n");
		}
		else
		{
			printf("女的 不能\n");
		}
	}
}

在函数中的参数为形参。

二、函数之间数据传递

函数的执行原理:调用时执行,执行完消失,也就是从栈中弹出(pop)

函数的数据(值)传递为:copy(复制)方式

数据之间的传递的类型为传值和传址

调用     传值:传值不可以改变主函数中的数据。

	exchange(m, n);//调用     传值
void exchange(int m,int n)//定义  void 空·无   无类型占位符
{
	int t;
	t = m; m = n; n = t;
	 return;
}

 

传址  形象的数就是把变量传过去了   地址相对来说是跨区域的(也就是不是局部变量):传址可以通过对地址的操作改变主函数中的数据,因为地址相当于是面向全局的。

	swap(&m, &n);
void swap(int*m,int *n)
{
	int t;
	t = *m; *m = *n; *n = t;
}

 

看如下代码,这其中的int a[]其实是给调用者的暗示 实际上是个指针  并且[]中的长度无意义,所以要通过传参的方式将长度传进来。

int add_all(int a[] ,int len);

void 是指空·无   无类型占位符,可以出现在函数的声明和定义中。

return 关键词的意思就是结束并返回值,如果打算中途结束函数执行,return需要与if结合使用。在满足某条件时结束函数执行。 如果返回类型不是void 则函数结束必须返回定义函数的类型。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序员懒羊羊

多多支持

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值