C语⾔中指针数组的概念和定义
C语⾔中指针数组的概念和定义:
概念:
1:⼀个数组的元素值为指针则为指针数组;
2:指针数组是⼀组有序的指针的 集合
3:指针数组的所有元素都必须是指向相同数据类型的指针
定义:
类型说明符 * 数组名[数组长度];
类型说明符就是指针指向的存储单元的数据类型
如int *pa[3] //pa是指针数组,它是三个数组元素,每个元素值都是⼀个指针,指向整形变量;
注意:指针数组和数组指针的区别
指针数组就是指针的数组,数组的元素是指针,⽽数组指针是⼀个⾏指针int (*pa)[20],指向⼀个包含N和元素的⼀维数组
指针数组和数组指针的相关代码
#include<stdio.h>
int main(int argc,char *argv[]){
int arr_num[4] = {1,4,5,8};
//指针数组(int *)
int *arr_num_pointers[4] = {&arr_num[0],&arr_num[1],&arr_num[2],&arr_num[3]};
int i = 0;
for(i; i<4 ; i++){
printf("%d\n",*(arr_num_pointers[i]));
}
//⾏指针,数组指针
printf("===============\n");
//arr_num是列地址,⽽int (*p)[4]则是⾏地址,所以在输出的时候需要&将列地址转换为⾏地址,所以只有&arr_num可以赋值给数组指针,其他两个是会抛出警告的
printf("&arr_num add:%p,arr_num add:%p,arr_num[0] add:%p\n",&arr_num,arr_num,&arr_num[0]);
int (*p)[4] = arr_num;
for(i=0;i<4;i++){
printf("%d\n",*(*p+i));
}
return0 ;
}
怎么给数组赋值代码能够run,如果有需要的话,可以直接拉下来run⼀下,看看结构体数组是怎么进⾏初始化操作和使⽤的。谢谢⼤家的访问,如有写的
不好的地⽅,希望⼤家能够及时的提出来,谢谢观看

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。