下面随笔是关于指针数组说明及与二维数组的最大区别。

指针数组

  • 数组的元素是指针型

c++指针数组与二维数组的最大区别_指针数组

例 利用指针数组存放矩阵

 1 #include 
 2 using namespace std; 3 int main() { 4     int line1[] = { 1, 0, 0 };    //矩阵的第一行 5     int line2[] = { 0, 1, 0 };    //矩阵的第二行 6     int line3[] = { 0, 0, 1 };    //矩阵的第三行 7      8     //定义整型指针数组并初始化 9     int *pLine[3] = { line1, line2, line3 };    
10     cout << "Matrix test:" << endl;11   //输出矩阵12     for (int i = 0; i < 3; i++) {13       for (int j = 0; j < 3; j++)14         cout << pLine[i][j] << " ";15     cout << endl;16     }17     return 0;18 }19 20 21 22 输出结果为:23 Matrix test:24 1,0,025 0,1,026 0,0,1

指针数组与二维数组对比

  • 对比例中的指针数组和如下二维数组

1 int array2[3][3] ={ { 1,0,0 }, { 0,1,0 }, { 0,0,1 } };

  二者最大区别在于数组行与行之间存储顺序的连续性,指针数组中行与行元素不是依次连续的,而二维数组为联系存放的,具体如图所示:

c++指针数组与二维数组的最大区别_指针数组_02