Vc++编程

来源:百度知道 编辑:UC知道 时间:2024/05/10 07:17:29
在定义函数时当函数的参数是数组时应该怎么处理?有谁能给我一点意见?不胜感谢!!
谢谢各位对我的问题的关注但出现了一个问题下面是我的程序:
void Rect (int m, int n, int a[][] )//建立矩阵(最后一行为b)

{
int i;
int j;
for(i=0;i<m;i++)
{
cout<<"请输出第"<<i+1<<"行的元数:"<<endl;
for(j=0;j<n;j++)
{
cin>>a[i][j];
cout<<a[i][j];
}
cout<<endl;
}

}
错误是:error C2087: '<Unknown>' : missing subscript
帮帮我吧!!

可以另外定义一个处理该数组的函数,改函数的参数要的就是数组的首地址,也就是数组名称,其实在这些处理数组的函数中,参数就是两个,一个是数组名称,还有一个就是数组长度....
祝你成功!

以int型数据为例:
void function(int array[], int n);
void function(int *array, int n);
上面两种定义形式上不同,但是对编译器而言是完全一样的。其中array为数组的首地址,调用时传入数据名即可,n为数据长度。之所以需要数组长度是因为传入数据的首地址后,在函数function内并不能根据array确定数组的大小,即使用sizeof(array)/sizeof(int)得到的也不时数据的长度,而是一个指针变量的长度与一个整型变量的长度之比。

如果要把一个二维数组传到函数中,只要把该函数的参数设置为二级指针就行了,以你的问题为例: 你只要把函数声明写成这样就行了:
void Rect(int m,int n,int**a);然后就可以直接把二维数组的行,列,和数组名传过来就行了。其它解决方法参考上面几位同学的吧。祝你成功!!!

在函数的参数里定义是指针的或是数组的就行了!很简单的!

定义指针就能解决@!

调用函数