一直被指针和一维数组,二维数组的定义给晕的一愣一愣的,做个总结,了结这段撕心的痛。{:2_32:}
先来区分一下指针数组和数组指针:
指针数组重在数组,定义: 数据类型 *数组名[数组长度];数组元素为指针;如:int *arr[3];
数组指针重在指针,定义: 数据类型 (*数组名)[数组长度]; 指向数组的指针;如:int (*arr)[3];
这里结合自己的理解这样来记忆的:在定义中 带括号()的就是指针,没带括号()的就是数组。
接下来区分 一维的和二维的定义:
其实在定义上 一维的和二维的指针数组和数组指针 的外在形式的定义是一样的。重点在于定义中方括号[数组长度]中的数组长度所代表的意义。
一维的 [数组长度]指的是整个数组的长度。
二维的 [数组长度]中,指针数组中代表的是数组行数, 数组指针[数组长度]代表的是数组列数(这里可以通过代码段中数组的定义确定是一维还是二维来区分意义)。
|
|