指针数组和指针数组的区别是什么??
1、指针数组
在C语言和C++语言中,数组元素全为指针的数组称为指针数组(即也可以这样解释:首先是一个数组,数组的元素的类型是指针)。例如:一维指针数组的定义形式为:“类型名
*数组标识符[数组长度]”。
一个一维指针数组的定义:int *ptr_array[10] ;
上述定义怎么解释呢?下面一步一步进行解释:
(1)、ptr_array[ ]
ptr_array先于[ ]结合,所以 ptr_array是一个数组名
(2)、ptr_array[ 10 ]
ptr_array是一个数组名,该数组含有10个元素
(3)、int* ptr_array[ 10 ]
ptr_array是一个数组名,该数组含有10个元素,每个元素的类型是int*型指针
所以上面定义了一个一维的指针数组
2、数组指针
数组指针是指向数组首元素的地址的指针(也就是可以这样说,首先是一个指针,这个指针指向一个数组),其本质为指针(这个指针存放的是数组首地址的地址,相当于2级指针,这个指针不可移动); 指针数组是数组元素为指针的数组,其本质为数组。
例如:*p[2]是指针数组(注意将“*”看成是一种变量类型,和“int”类型一样,只不过它表示变量的类型是指针),实质是一个数组,里面的两个元素都是指针, [ ]的优先级比*的优先级高,p先与[ ]结合,形成数组p[2],有两个元素的数组,再与*结合,表示此数组是指针类型的,每个数组元素相当于一个指针变量。
总结:
从上面两个的定义可以看出两个的区别。一个是数组一个是指针。是数组。,只不过它的数组元素的类型是指针。是指针的,只不过其指向的对象是数组。所以“指针数组”和“数组指针”的重点是在后面的两个字。
,
2849

被折叠的 条评论
为什么被折叠?



