【发布时间】:2013-04-27 04:08:24
【问题描述】:
我正在尝试制作一个打印出二维数组的函数。 我做了一个打印一维数组的方法。
#include <iostream>
using namespace std;
void printArray (int theArray[],int sizeOfArray);
int main ()
{
int array1[3] = {1,3,7};
int array2[5] = {123,5,23,2,324};
printArray(array1, 3);
printArray(array2, 5);
}
void printArray (int theArray[],int sizeOfArray){
for (int x=0; x<sizeOfArray; x++) {
cout<<theArray[x] <<" ";
}
cout<<endl;
}
我编写了这些代码来打印二维数组,但我失败了。
#include <iostream>
using namespace std;
void printArray (int theArray[][],int sizeOfRow, int sizeOfCol);
int main ()
{
int array[2][3] = {{1,3,7},{5,3,2}};
printArray(array, 2,3);
}
void printArray (int theArray[][],int sizeOfRow, int sizeOfCol){
for (int x=0; x<sizeOfRow; x++)
for (int y=0; y<sizeOfCol; y++) {
cout<<theArray[x][y] <<" ";
}
cout<<endl;
}
我的编译器说数组的元素类型“int[]”不完整。 打印二维数组的正确代码是什么?
【问题讨论】:
-
你的循环很好,但我认为这里的问题是需要在
theArray上指定列大小 -
您可以包括prettyprinter 并说
cout << theArray;:-) -
@Fraukn Higly recommended reading.
-
"逻辑是数组不是指针。 int theArray[] 并不意味着您正在传递一个数组(因为您不能通过值传递它们)而是一个指针 - 它是int* 的语法糖(源自 C 的一种相当苦涩和古老的糖)。如果有效,int theArray[][] 的含义与 int (*theArray)[] (指向数组的指针)相同。问题也就是说,int[] 是一个不完整的类型,编译器不知道指针指向什么。因此,您需要指定大小并告诉它应该指向三个整数的数组: int (*theArray) [3],同 int[][3]" [由 jrok 编写]
-
@LewsTherin 不过你的回答没有错,没必要删掉。
标签: c++ arrays user-defined-functions