2016 - 2024

感恩一路有你

数组作为函数参数传递 在c 语言中,为啥形式参数中定义的数组可以没有长度?

浏览量:2755 时间:2021-03-13 09:34:43 作者:admin

在c 语言中,为啥形式参数中定义的数组可以没有长度?

因为当函数参数是数组时,它只以数组的形式出现。实际上,参数将根据指针传递。

1. 在C/C中,数组可以用作参数。例如,

void func(int n[10])]有时会被写入

void func(int n[

]无论哪种方式,实际上都是编译后定义

void func(int*n)。

2. 将数组转换为指针可以提高效率并减少实际传递的值的数量。例如,如果transfer参数是int a[100],则sizeof(int)*100字节的值需要传输到实际数组。如果传输指针,只需要传输sizeof(int*)数据,这样可以大大提高效率。

3. 要传递指针,可以将函数中的更改返回给main函数。

总之,如果要将其转换为指针,可以使用int*n,int n[,int n[100],这没有区别。当然,这是合法的。

在C语言中,函数传参时怎样利用指针传递数组?

数组只能通过指针传递,不能通过值传递。数组参数是指针参数。指针参数称为引用参数。如果要修改函数中参数的值,这是唯一的方法。如果将数组作为参数,不管您是否喜欢,它都是指向第一个值的指针。1数组参数是指向第一个元素的指针#Include

当参数是指向数组的指针时,指针的值可以更改。开始时,它指向数组中的一个字符(取决于您传递的参数),该字符可以向后或向前移动。

参数问题:

如果传递的常规数字(如int、double等)实际上是值的副本,则只有传递数组时才可以复制,然后才实际传递数组。您可以直接对数组进行操作,即需要更改原来的数组(实际上是同一个数组);

当形式参数是指向数组的指针时,只有数组的第一个地址保持不变,例如

int

num[n

]int

*P

=]num

getinfo(num)//第一种情况

getinfo(p1)//第二种情况

在这两种函数调用中,第一种情况下,Num是数组中不能更改的第一个地址,第二种情况下,p指向可以更改的数组。在这种情况下,P指向数组的第二个数字;

数组作为函数参数传递 数组的参数传递方式 指针数组作为函数形参

版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。