c++ - 将二维数组作为参数传递

标签 c++ arrays pointers

在这个例子中:

int a[2][2]={{1,2},{3,4}};
int *p=a[0];
cout<<p;
cout<<&a[0][0];

两者给出相同的输出。 那为什么我不能像这样调用函数(比如有趣)并循环遍历数组:

fun(a[0]);

fun(int *p)
{
cout<<p[1][1];
}

最佳答案

fun(a[0]); //this looks OK

void fun(int *p) // this is OK if you add return type'
^^^^
{
   cout<<p[1][1]; //NOT OK!  You can't have 2 indices on an `int*`
   cout << p[1]; // OK, will print a[0][1]
}

关于c++ - 将二维数组作为参数传递,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6648828/

相关文章:

c - 如何打印数组头部的内容并删除

c++ - 将数据输入到具有指针成员变量的结构中

c++ - 零减零等于无穷大?

c++ - 使用 C++ 中参数的大小创建二维数组

c++ - 保证有效的字符串作为函数参数

c++ - CodeChef 上的时间限制错误

c++ - 根据类内的字符串对用户定义类的 vector 进行排序

c++ - 鲨鱼机器学习库 : undefined reference to `cblas_ddot'

c++ - 如何从整个代码的函数中打开文件?

java - Android 应用程序内部数据存储