浅谈c语言函数和指针参数

c语言函数

函数的定义

函数就是将一段可用代码进行封装,实现某种功能,达到代码的重复利用,也可以理解为一个子程序,其本身就是为了实现某种功能,将实现功能的代码进行打包而已。

函数的类别

主要分为:

  1. 库函数
    最常见的库函数如printf() scanf()等。每个头文件都包含了不同的库函数,也可以将头文件理解为函数的库,使用时进行加载引用即可调用
  2. 自定义函数
    由用户自己编写的函数,工程的主要功能实现,一般都靠自定义函数。业务逻辑也大都由此完成。

如何查找库函数

库函数其实有很多,我们不能把他们所有的都记住,显然是不现实的,那我们如何查找这些函数呢?
给大家推荐两个工具:

函数的语法

有返回值时:

/* type -> 返回值类型
   name -> 函数名称 
   parameter ->参数
   value - > 返回值
*/	
type name(type parameter)
{
	statement;
	return value;
}

无返回值:

void name(type parameter)
{
	statement;
}

函数命名规范

  • 蛇形命名法 : num_max
  • 驼峰命名法 : intNumMax

函数参数

部分函数在进行调用时需要进行传参,下面就写一个简答的函数为大家演示一下:

//函数功能:输出两个数的最大值,相等时,则输出其中一个
int max(int a,int b)
{
	if(a > b)
	{
		return a;
	}
	else if(a == b)
	{
		print("两数相等")
		return a;
	}
	else
	{
		return b;
	}
}

在函数调用时:
max(9,8);必须传参

疑惑?

那么想一想,传入的参数后,会不会改变传入变量的值?
如果我们想通过函数改变这个变量呢?怎么实现?

题目:
编写一个函数,功能:将这两个数交换。

void swap(int a,int b)
{
	int num;
	num = a;
	a = b;
	b = num;
}

运行结果:没有交换x和y的值,这是为什么呢?

运行结果
既然没有交换两个变量的值,那么肯定是我们的函数出现的问题,那么如何解决呢?

原因:我们传入的参数,只是将值交换了,但并没有重新将交换的值赋值给变量。

解决思路:如果我们将变量的指针传给函数,此时将变量的指针进行交换,也就达到了将变量的值交换的目的

实现:

void swap(int *pa,int *pb)
{
	int num;
	num = pa;
	pa = pb;
	pb = num;
}

结果:此时正确的将我们的目的实现了。
运行结果

总结

之所以将总结设置为一级标题,是因为我感觉总结和知识同样重要。

我们在需要在函数内对参数的值进行改变的时候,通常传入参数的地址,操作参数的地址,也就直接的操作了参数的值,对于只需要进行值得判断、输出等不需要改变变量的值的时候,传入变量即可。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

友人和他的朋友们

你的鼓励将是我创作的最大动力

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

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

打赏作者

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

抵扣说明:

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

余额充值