在C语言中,数组作为参数,是怎样在函数之间传递的啊??
发布网友
发布时间:2022-04-25 02:10
我来回答
共6个回答
热心网友
时间:2022-06-29 02:57
数组作为参数是按地址传递的
数组名就是数组的首地址。因此在数组名作函数参数时所进行的传送只是地址的传送, 也就是说把实参数组的首地址赋予形参数组名。形参数组名取得该首地址之后,也就等于有了实在的数组。实际上是形参数组和实参数组为同一数组,共同拥有一段内存空间。
热心网友
时间:2022-06-29 04:15
函数里写明数组类型,数组名再加中括号就行了,但同时最好写上数组里的元素个数;要么直接用指针(你没学就不说了)!
如 int fun(int a[],int n); //声明一个函数,传入一个a数组,n代表行标
调用 fun(a,n)就行了;
怎样??懂了吧!!
热心网友
时间:2022-06-29 05:50
很简单的,数组作为函数参数传递的时候只要是数组名就可以了,因为数组名本身就是数组的首地址 .给个程序看看
#include<stdio.h>
#define N 3
int array[N][N];
void main()
{
//在主函数内声明被调函数
void convert(int array[][3]);
int i,j;
printf("输入数组:\n");
for(j=0;j<N;j++)
for(i=0;i<N;i++)
scanf("%d",&array[i][j]);
printf("\n");
for(j=0;j<N;j++)
{
for(i=0;i<N;i++)
printf("%d\t",array[i][j]);
printf("\n");
}
//调用矩阵转置函数
convert(array);
printf("\n");
for(i=0;i<N;i++)
{
for(j=0;j<N;j++)
printf("%d\t",array[i][j]);
printf("\n");
}
}
void convert(int array[][3])
{
int i,j,t;
for(i=0;i<N;i++)
for(j=0;j<N;j++)//设置数组中转置矩阵元素交换
{
t=array[i][j];
array[i][j]=array[j][i];
array[j][i]=t;
}
}
热心网友
时间:2022-06-29 09:49
取数组首地址做地址传递,如要传送int a[10],可以在函数中写,fun(int *a)
热心网友
时间:2022-06-29 12:14
在调用函数时,给一个数组类型的参数,通过下标传递。
热心网友
时间:2022-06-29 14:55
和指针一样,数组名就是首地址,直接传递数组名,
在C语言中,数组作为参数,是怎样在函数之间传递的啊??
数组作为参数是按地址传递的 数组名就是数组的首地址。因此在数组名作函数参数时所进行的传送只是地址的传送, 也就是说把实参数组的首地址赋予形参数组名。形参数组名取得该首地址之后,也就等于有了实在的数组。实际上是形参数组和实参数组为同一数组,共同拥有一段内存空间。
C语言中,数组名作为函数参数,属于什么传递,为什么?
C语言中,数组名作为函数参数,属于数组参数传递。在VB6.0中,允许使用数组作为实参传递到子过程的形参中,数组传递必须采用地址传递的方式来传递参数。数组型变量名本身只是该数组所占存储空间的首地址,函数调用时,系统不会为形参分配数组存储空间,而是仅仅分配一个存放数组地址(第一个元素地址)的存储...
C语言中,数组作为参数,怎样在函数之间传递的?
int array[N][N];void main(){ //在主函数内声明被调函数 void convert(int array[][3]);int i,j;printf("输入数组:\n");for(j=0;j<N;j++)for(i=0;i<N;i++)scanf("%d",&array[i][j]);printf("\n");for(j=0;j<N;j++){ for(i=0;i<N;i++)printf("%d\t",a...
C语言中,数组名作为函数参数,属于什么传递,为什么?
属于地址传递,在函数里修改的话,将直接影响调用方的数值。这是因为数组名代表这个数组的首地址,不过是静态不可更改的而已。在函数里用引用[i]下标时,就是找到这个数组第i号元素的地址进行修改的。所以是第于是地址传递。
在C语言中,用数组名作为函数调用时的实参,实际上传递给形参的是...
在C语言中,用数组名作为函数调用时的实参,实际上传递给形参的是首地址。因为数组名传递的是数组的地址也就是第一个元素的地址。例如:a[3]这个数组,3指个数,a[0]指第一个元素,全部元素指a[0]~a[2];那数组名a规定的就是首地址。
c语言数组如何在函数中传递?不要指针传递
数组只能通过指针传递,不能通过值传递。数组参数属于指针参数,指针参数即时传址参数(或叫引用参数), 如果想在函数中修改参数的值, 这是唯一的途径.如果把数组当作参数, 不管愿意与否, 它就是指针, 指向第一个值的指针.1. 数组参数就是指向第一个元素的指针: #include <stdio.h> void getArr(int...
C语言问题,请问二维数组的函数参数是怎么传递的?
void shuchu(int **array_num);在函数中调用时,直接传递数组名就可以了,数组名可以视为数组的“头指针”,可以用这个指针进行一系列的相关操作,如图,可以按如下方式调用 shuchu(a);另外,一个建议:不要在传参时忽略数组的长度,最好显式的以参数的形式传递给函数 或者,在数组中做标志,在...
C语言中,数组做函数参数如何才能按值传递?
传数组给一个函数,数组类型自动转换为指针类型,因而传的实际是地址。void func(int array[10])void func(int array[])void func(int *array)所以以上三种函数声明完全等同。实际情况是,数组做参数,完全无法按值传递。这是由C/C++函数的实现机制决定的。下一个问题是:为什么偏要按值传递呢?当要...
c语言,用数组名作为函数调用时的实参,传递给形参的是什么?
c语言,用数组名作为函数调用时的实参,传递给形参的是数组首地址的值,即指针
c语言数组在函数中的传递
数组名本身就是地址,你在定义你两个方法时就定义指针类型就可以了,,然后能够直接操作数组的数据