函数参数的传递

时间:2019-09-02
本文章向大家介绍函数参数的传递,主要包括函数参数的传递使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

函数的形参是实参的一个拷贝,且形参的改变不会影响到实参(除非形参类型是数组、引用或对象)

一维数组作为函数的参数时的写法如又:类型名 数组名[ ]。例如:void PrintArray(int a[ ]) { }。

数组作为函数参数时,是传引用的,即形参数组改变了,实参数组也会改变。

函数作为参数例子----把一维数组中的所有元素零:

#include<iostream>
#include<cstdio>
using namespace std;
void SetToZero(int a[], int length);
int a1[4] = {1,2,3,4};
int a2[] = {1,2,3,4};//定义数组并初始化时可以不用定义数组长度
int main()
{
SetToZero(a1, sizeof(a1)/sizeof(int));
for(int i=0;i<sizeof(a1)/sizeof(int);i++)//获得a1数组长度的小技巧:length = sizeof(a1)/sizeof(int)
printf("%d", a1[i]);
printf("\n");
SetToZero(a2, sizeof(a2)/sizeof(int));
for(int i=0;i<sizeof(a2)/sizeof(int);i++)
printf("%d", a2[i]);
return 0;
}
void SetToZero(int a[], int length)
{
for(int i=0;i<length;i++)
a[i] = 0;
}

二维数组作为函数的参数:

二维数组作为形参时,必须写明数组有多少列,不用写明有多少行,例:

void PrintArray(int a[][5])   {   cout<<a[4][3];  }

a[i][j]的地址:数组首地址+i*N*sizeof(a[0][0])+j*sizeof(a[0][0])  (N是数组的列数)

形参数组的首地址就是实参数组的首地址

原文地址:https://www.cnblogs.com/arthur-f/p/11449167.html