指针数组与二維数组的区别

来源:互联网 发布:淘宝联盟提不了现 编辑:程序博客网 时间:2024/06/06 14:25

下面有两个定义:

int a[10][20];

int *b[10];

其中a是一个真正的二維数组,它分配了200个int类型的存储空间,并且通过常规的矩阵下标运算可以得到矩阵元素,

对于b来说,该定义仅仅分配了10个指针,并且没有对它们初始化,它们的初始化必须以显示的方式进行,比如静态初始化或通过代码初始化.假定b的每个元素都指向一个具有20个元素的数组,那么编译器就要为它分配200个int类型长度的存储空间以及10个指针的存储空间.

指针数组的优点在于:数组的每一行长度可以不同.