函数(1)

1.函数是什么:是一个大型程序中的某部分代码, 由一个或多个语句块组
成。它负责完成某项特定任务,而且相较于其他代 码,具备相对的独立性。

同时可以提供对过程的封装和细节的隐藏。

2.C语言中的函数

库函数

自定义函数

其中库函数能够查阅资料自行学习http://www.cplusplus.com

自定义函数的组成

type function(a)
{
    语句;
}
type是返回类型
function是函数名称
a是函数的参数

举个例子如取两个数的最大值

#include <stdio.h>
//返回类型 函数名称    函数参数m与n
int        get_max    (int m, int n)
{
	if (m > n)
		return m;
	else
		return n;//返回值为整形所以用int
}
int main()
{
	int a = 0;
	int b = 0;
	scanf("%d %d", &a, &b);
	int Max = get_max(a, b);
	printf("最大值是%d", Max);
	return 0;
}

3.函数的参数

3.1实际参数

传给函数的参数

可以是:常量,变量,表达式,函数等等。

在函数调用时必须有准确的值。

3.2形式参数

函数里括号里的参数,只有在函数被调用的过程中才实例化(分配内存单元)

在调用完成后自动销毁。

3.3总结

形参实例化之后相当于实参的零时拷贝。

4.函数的调用

4.1传值调用

对形参的修改不会对实参进行修改。

int a = 1;
int b = 2;
int Max = get_max(a,b);

int get_max(int m, int n)
{
    ...;

}
如图调用下面的函数只是判断大小谁更大,所以不用修改实参,则用传值调用法。

4.2传址调用

对形参修改会对实参修改。

#include <stdio.h>
//交换两个数的值
void swap(int* pa, int* pb)
{
	*pa = *pa + *pb;
	*pb = *pa - *pb;
	*pa = *pa - *pb;
}

int main()
{
	int a = 0;
	int b = 0;
	scanf("%d %d", &a, &b);
	printf("交换前%d %d\n", a, b);
	swap(&a,&b);
	printf("交换后%d %d\n", a, b);
	return 0;
}
//如图要交换两个数的值假设a=1 b=2,交换后a=2 b=1,此时实参改变,用传址调用。改用指针通过a与b的地址作为实参然后通过解引用操作符*来对地址里的值进行修改交换就叫作传址调用。 

4.3总结

所以可以对问题进行思考

若需要改变实参就用传址调用,不改变实参就用传值调用。

5.函数的嵌套使用与链式访问

5.1嵌套使用

函数可以嵌套调用类似于分支循环语句的嵌套,但是不能嵌套定义嵌套。(也就是说不能在一个函数里编写另一个函数但可以调用)

5.2链式访问

可以把一个函数的返回值作为另一个函数的参数如

printf("%d", printf("%d", printf("%d", 12)));
//打印出的结果为1221
//实际上时12 2 1

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值