C++阵列和功能
C++ array & function
我有一个关于如何将 2D 数组传递给函数的问题。
我知道我可以做这样的事情:
void print(int a[][20]){
cout << "print 1" << a[10][10] << endl;
}
int main(){
int a[20][20];
print(a);
cout << "print 2" << *(*(a+10)+10) << endl;
}
打印 1 和 2 应该给我相同的结果。
如果我是对的,a 是 2D 指针。
但我不能这样做
void print(int** a){
}
int main(){
int a[20][20];
print(a);
cout << "print 2" << *(*(a+10)+10) << endl;
}
错误是:cannot convert ‘int (*)[20]’ to ‘int**’ for argument ‘1’ to ‘void print_int(int**)’
为什么我不能这样做?
int **
是指向 int 的指针,而不是 2D 数组。
因为int
**是"指向int的指针"。它与"指向二十个整数的指针"不同。因此,您的第二个代码与尝试传递您家居住的街道地址相同,而不是传递您家有地址的人的地址。
你应该使用数组表示法,而不是指针表示法,因为数组不是指针:
cout << "print 2" << a[11][11] << endl;
相关文章:
- 在执行其他功能的同时播放动画(LED矩阵和Arduino/ESP8266)
- 多态性和功能结合
- OpenMP阵列性能较差
- 阵列打印功能
- 如何声明功能接受rvalue的任意长度阵列
- OPENCL-如何使辅助功能返回阵列并将内存的部分从恒定内存空间转移到私有
- 界面设计:超载功能的安全性采用字符串和字符阵列
- 如何将浮子数组阵列从Swift传递到C 功能
- 将多个功能存储到阵列C 以进行循环
- 从其初始化的功能中使用的特定大小的阵列
- 类型 *阵列的最小或最大值的类功能 *
- 多功能阵列最后一行相同的结果
- 如何在我的指针和阵列功能中修复未解决的外部错误-LNK2019和LNK1120
- 功能原型中的多维阵列
- 在功能中操纵未达到的阵列
- 阵列到C++功能(使用 ASM)读取错误
- 实现QT中按钮阵列的单一功能
- C++阵列和功能
- 井字游戏 BIG 板使用功能和 2D 阵列
- 为什么功能中的本地阵列似乎可以防止TCO