关于二维指针编译报错的问题
新学习C++语言 在C++ Primer的二维数组指针一节按文写了个程序,为何在for (int *k;k!=ip+3;k++)这段编译报错呢?
提示无法从“int_array (*)”到“int *”的转换,请问该怎么写?为什么呢?
谢谢了!
#include <cstdlib>#include <iostream>using namespace std;int main(int argc, char *argv[]){ int ia[2][3]={1,2,3,4,5,6}; typedef int int_array[3]; int_array *ip = ia; cout<<ip<<" "<<*ip<<" "<<**ip<<endl; for ( ;ip!=ia+2;ip++) { for (int *k;k!=ip+3;k++) { cout<<*k<<" "; } cout<<endl; } system("PAUSE"); return EXIT_SUCCESS;}
#include <cstdlib>#include <iostream>using namespace std;int main(int argc, char *argv[]){ int ia[2][3]={1,2,3,4,5,6}; int (*p)[3] = ia; // p的类型为 typedef int int_array[3] 的指针类型 int (*pc)[3] = p; for (; pc != p + 2; pc++) { // 两行数组,每个数组3个元素 for (int i = 0; i < 3; ++i) { std::cout << (*pc)[i] << std::endl; // (*pc)将指针类型转换为数组(int[3]),再通过 } // 索引访问元素 } system("PAUSE"); return EXIT_SUCCESS;}