关于C/C++下二位数组指针的问题
在C 下面,这段代码编译没问题:
- C/C++ code
int arr[2][3] = {{1, 2, 3}, {2, 3, 4}}; int **p = arr;但是在C++下面,编译会报这个错:
invalid conversion from ‘int (*)[3]’ to ‘int’ [-fpermissive]
arr也不能传给一个以int的指针的指针为参数的函数。请问是什么原因啊?
我系统是ubunbu 11.10, gcc版本4.6.1.
[解决办法]
arr退化的指针类型为 int(*)[3]
[解决办法]
- C/C++ code
int (*)p[3];p = arr;
[解决办法]
http://www.cnblogs.com/kanong/archive/2010/09/01/1814733.html
http://topic.csdn.net/t/20050517/19/4014417.html
[解决办法]
你可是数组和指针的概念不清楚。数组的维数,和指针的级数没关系,不是一个概念!《C专家编程》
如果是int a[2];则可以 int *pa = a;这是一种隐士转换.
如果是Int b[2][2];则可以 int (*pb)[2] = b;
[解决办法]