1:一个数组的元素值为指针则为指针数组; 2:指针数组是一组有序的指针的 集合 3:指针数组的所有元素都必须是指向相同数据类型的指针
注意:指针数组和数组指针的区别 指针数组就是指针的数组,数组的元素是指针,而数组指针是一个行指针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)); } return 0 ; }代码能够run,如果有需要的话,可以直接拉下来run一下,看看结构体数组是怎么进行初始化操作和使用的。谢谢大家的访问,如有写的不好的地方,希望大家能够及时的提出来,谢谢观看
新闻热点
疑难解答