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

Posted 流星斩月

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c++指针数组与二维数组的最大区别相关的知识,希望对你有一定的参考价值。

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

指针数组

  • 数组的元素是指针型

例 利用指针数组存放矩阵

#includeusing namespace std;int main() { int line1[] = { 1, 0, 0 }; //矩阵的第一行 int line2[] = { 0, 1, 0 }; //矩阵的第二行 int line3[] = { 0, 0, 1 }; //矩阵的第三行
//定义整型指针数组并初始化 int *pLine[3] = { line1, line2, line3 }; cout << "Matrix test:" << endl; //输出矩阵 for (int i = 0; i < 3; i++) { for (int j = 0; j < 3; j++) cout << pLine[i][j] << " "; cout << endl; } return 0;}


输出结果为:Matrix test:1,0,00,1,00,0,1

指针数组与二维数组对比

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

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

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

 


以上是关于c++指针数组与二维数组的最大区别的主要内容,如果未能解决你的问题,请参考以下文章

C++ 数组(及二维数组)与指针(互转遍历),数组与引用

C++二维数组(指针)做参数

memcpy()对二维数组和二维指针操作的区别

指针数组与二级指针问题

动态创建二维vector数组+指针与引用的区别

C# 中锯齿状数组的内存分配与 C++ 中的二维数组内存分配