函数参数传递

本文详细介绍了C语言中参数传递的四种方式:值传递、地址传递、数组元素作为参数以及数组名作为参数,并通过代码示例展示了各自的效果。值传递不会改变原始变量值,而地址传递则可以实现变量值的交换。通过数组元素作为参数可以找到数组中的最大值,数组名作为参数可以计算数组的平均值。
摘要由CSDN通过智能技术生成

(一)值传递参数

  • 传递后x y没有任何关系 都不会改变
#include<stdio.h>
void swap(int a, int b)
{
	int temp = a;
	a = b;
	b = temp;
}
int main()
{
	int x = 10;
	int y = 20;
	swap(x, y);
	printf("x=%d, y=%d\n", x, y);
	return 0;
}

(a)结果演示

在这里插入图片描述

(二)地址传递参数-代码

  • 形参y是指针型变量 将x的地址赋给y y里存放的是x的地址
#include<stdio.h>
void swap(int* a, int* b)
{
	int temp = *a;
	*a = *b;
	*b = temp;
}
int main()
{
	int x = 10;
	int y = 20;
	swap(&x, &y);
	printf("x=%d, y=%d\n", x, y);
	return 0;
}

(b)结果演示

在这里插入图片描述

(三)数组元素做参数-代码

#include<stdio.h>
#pragma warning(disable:4996);
#define SIZE 10
int max(int x, int y) {
	return(x > y ? x : y);
}
int main()
{
	int max(int x, int y);
	int arr[SIZE], m;
	printf("请输入10个数:");
	for (int i = 0; i < 10; i++) {
		scanf("%d", &arr[i]);
	}
	printf("\n");
	m = arr[0];
	for (int j = 0; j < 10; j++) {
		m = max(m, arr[j]);
	}
	printf("最大数是: %d\n", m);
	return 0;
}

(c)结果演示

在这里插入图片描述

(四)数组名做参数

float average(int a[SIZE])
{
	float sum = 0;
	for (int i = 0; i < SIZE; i++)
		sum = sum + a[i];
	return(sum / SIZE);
}
int main()
{
	int s[SIZE];
	printf("请输入5个整数: \n");
	for (int i = 0; i < SIZE; i++)
		scanf("%d ", &s[i]);
	float aver = average(s);
	printf("平均值aver=%f \n", aver);
	return 0;
}

(d)结果演示

-输完之后要输个东西才出结果
在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值