C语言函数

学过C语言的同学想必都明白函数的重要性吧,函数能够帮助我们更快地去解决程序上的问题,去实现程序。
那么C语言函数又包括哪两种呢?

C语言中函数的分类:

  1. 库函数
    2.自定义函数

那么我,我们怎么去学习库函数呢,这里我们可以借助一个网站http://www.cplusplus.com/reference/来学习库函数。
在这里插入图片描述
让我们点开头文件string.h的文件,找到strcpy函数。
在这里插入图片描述

在这里插入图片描述
这里就是拷贝函数,我们可以看到这个函数返回的char*类型的数据,括号里前面一个是目的地,就是你想把内容拷贝到哪个数组的对象,后面这个就是被拷贝的对象。

#include<stdio.h>
#include<string.h>
int main()
{
	char arr1[20];
	char arr2[] = "abcdef";
	strcpy(arr1, arr2);
	printf("%s", arr1);

	return 0;
}

这里我们就很容易的看到arr2数组中的字符拷贝到了arr1数组中。

所以当我们想要利用库函数的时候就可以利用这个网站来查找你想用的库函数。这对于我们这种初学者来说还是非常方便的。

接下来就让我们来看看自定义函数是怎么操作的吧。
自定义函数和库函数一样,有函数名,返回值类型和函数参数。
但是不一样的是这些都是我们自己来设计。这给程序员一个很大的发挥空间。

我们来举个简单的例子帮助大家更好的理解自定义函数。

写一个函数可以找出两个整数中的最大值。

#include <stdio.h>
//get_max函数的设计
int get_max(int x, int y)
{
 return (x>y)?(x):(y);
}
int main()
{
 int num1 = 10;
 int num2 = 20;
 int max = get_max(num1, num2);
 printf("max = %d\n", max);
 return 0;
}

在这里插入图片描述
我们看到这个我们自定义的函数帮助我们找出了两个数中的最大值,看到主函数中的get_max函数我们实际上是把num1和num2的值通过数值传参到函数,让函数中找到最大值,在通过return返回打印出来。

函数的参数分为实参和形参,真实传给函数的参数,叫实参(常量、变量、表达式、函数等),形式参数是指函数名后括号中的变量,因为形式参数只有在函数被调用的过程中才实例化(分配内存单元),所以叫形式参数。形式参数当函数调用完成之后就自动销毁了。

void Swap1(int x, int y)
{
	int z = 0;
	z = x;
	x = y;
	y = z;
}

int main()
{
	int num1 = 0;
	int num2 = 0;
	scanf("%d %d", &num1, &num2);

	printf("交换前:num1 = %d num2 = %d\n", num1, num2);

	//实际参数
	Swap1(num1, num2);
	//函数调用的时候,将实参传递给形参
	//形参其实是实参的一份临时拷贝
	//对形参的修改,不会改变实参

	printf("交换后:num1 = %d num2 = %d\n", num1, num2);

	return 0;
}

在这里插入图片描述

在这里插入图片描述
从这里我们看到num1,num2,与x,y的地址相同,而它们不处于同一空间所以我们可以简单的认为:形参实例化之后其实相当于实参的一份临时拷贝。

函数的调用分为传值调用和传址调用。
传值调用
函数的形参和实参分别占有不同内存块,对形参的修改不会影响实参。
传址调用
传址调用是把函数外部创建变量的内存地址传递给函数参数的一种调用函数的方式。
这种传参方式可以让函数和函数外边的变量建立起真正的联系,也就是函数内部可以直接操
作函数外部的变量。

这就是C语言有关于函数的内容,今天的分享就到这里,谢谢大家。

评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Lehjy

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

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

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

打赏作者

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

抵扣说明:

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

余额充值