指针数组与数组指针的区别是什么?麻烦详细点
指针数组:array
of
pointers,即用于存储指针的数组,也就是数组元素都是指针
数组指针:a
pointer
to
an
array,即指向数组的指针
还要注意的是他们用法的区别,下面举例说明。
int*
a[4]
指针数组
表示:数组a中的元素都为int型指针
元素表示:*a[i]
*(a[i])是一样的,因为[]优先级高于*
int
(*a)[4]
数组指针
表示:指向数组a的指针
元素表示:(*a)[i]
数组,相当于一栋大楼,里面有许多房间,房间号码,0,1,2,3....,每个房间里可以存放一个数据。
指针,相当于一栋大楼的地址,例如,某某路几号,至于这栋大楼里面房间是否已建好,或有多少房间,并不知晓。
例如:
int *x; // x 是指针,用来指向一个int 型存放区 的地址。没有存放数据的房间。
若想有存放数据的房间,则要 修建,例如
x = (int *) malloc(10*sizeof(int)); 于是,有了10个房间,可存放int 型 数据。
这时,等于 声 明 了 int x[10];
int y[10]; // 直接 声 明 y 是数组, 有10个房间,可存放10个 int 型 数据。
y 数组 首地址是 &y[0]
鹏仔微信 15129739599 鹏仔QQ344225443 鹏仔前端 pjxi.com 共享博客 sharedbk.com
图片声明:本站部分配图来自网络。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!