菜单

用数组名作函数参数,数组成分和数组名作为函数参数

2020年1月27日 - 4166m金沙
用数组名作函数参数,数组成分和数组名作为函数参数

(1)数组作实参只蕴涵三种情景:数组成分或数组名作实参,不大概将全体数组作实参

  1. 用数组元素作函数实参

    1 #include
    2 using namespace std;
    3
    4 int max_value(int x, int max)
    5 {
    6 return max > x ? max : x;
    7 }
    8
    9 int main()
    10 {
    11 const int x = 3, y = 4;
    12 int a[x][y]={{34,62,34,101},{45,67,3,0},{11,45,97,100}};
    13 int max = a[0][0], i, j, ix, iy;
    14
    15 for(i = 0; i < x; i ++) 16 { 17 for(j = 0; j < y; j++) 18 { 19 max = max_value(a[i][j],max); 20 if(max == a[i][j]) 21 { 22 ix = i; 23 iy = j; 24 } 25 } 26 } 27 cout << "a[" << ix << "][" << iy << "]=" << max << endl; 28 }

数组用作函数参数有三种格局:

生龙活虎种是把数组成分(下标变量)作为实参使用;

风姿罗曼蒂克种是把数组名作为函数的形参和实参使用。

(2)数组成分作实参时,向形参传递的是数组中有个别元素的值(与变量作形参相通)

 

1、数组成分(下标变量)作为实参使用

数组元素作为函数实参使用与不足为奇变量是完全相符的,在发出函数调用时,把作为实参的数组成分的值传给形参,只是“拷贝”实参中的变量的值,传送给形参,完结单向的值传送

图片 1

数组成分作为函数实参的值传递进度

(3)数组名作实参时,向形参传递的是数组的首地址。当时,形参不是主导项目标变量,能够是数组或指针变量

  1. 用数组名作函数参数

2、数组名作为函数参数

用数组名作为函数参数与用数组成分作实参有几点不一致

1)用数组成分作函数参数不必要形参也一定要是数组,然则用数组名作函数参数时,则供给形参和相对应的实参都以体系相近的数组

2)在C语言中,数组名除作为变量的标记符之外,数组名还表示了该数组在内部存款和储蓄器中的开头地址,当数组名作函数参数时,实参与形参之间不是“值传递”,而是“地址传递”,实参数组老将该数组的骨子里地址传给形参数组,八个数组分享风流罗曼蒂克段内部存款和储蓄器单元,编写翻译系统不再为形参数组分配存款和储蓄单元。

3)在变量做函数参数时,所开展的值传递是单向的。即只可以从实参传向形参,不可能从形参传回实参。

(4)形参数组的数组名不是常量而是指针变量,它存放实参传递过来的实参数组的首地址

有关用数组名作函数参数有两点要验证:

3、数组名作为函数参数注意事项

1)形参数组和实参数组类型必得豆蔻年华致,不然出错

2)在函数形参表中,允许不给出形参数组的长度,或用三个变量来表示数组成分的个数

void xzh(int a[])

或写为

void xzh(int a[],int n)

n的值由主调函数的实参实行传递

所有的地址都占8个字节

3)形参数组和实参数经理度可以不相通,因为在调用时,只传递首地方而不检查形参数组的长度。

相关文章

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图