龙空技术网

数组指针&指针数组

前端全栈开发 87

前言:

如今小伙伴们对“数组指针是什么”可能比较重视,姐妹们都需要剖析一些“数组指针是什么”的相关知识。那么小编同时在网上网罗了一些关于“数组指针是什么””的相关知识,希望朋友们能喜欢,兄弟们快快来了解一下吧!

int* p1[5];

因为[]的优先级高于*,所以p1先与[]结合,p1[5]:定义一个长度为5的数组,数组名为p1,int*修饰的是数组的内容,即数组中每个元素的类型。这条语句的完整解读是声明一个包含5个指向int指针类型的数组,数组名为p1;

int (*p2)[5];

*和p2被()扩起来,表示*和p2先结合,*p2此时表示定义了一个指针变量,指针变量名为p1,int (*p2) [5];就表示p2指针变量指向一个包含了5个指向int类型的数组,很明显p2是一个数组指针,这里没有给出数组名,也不需要给出数组名,是个匿名数组,可以直接通过数组指针操作数组。

		int total = 0;    printf("请输入数组长度:\n");    scanf("%d",&total);    int s[total];    printf("向数组输入%d个整数\n",total);    for(int i=0;i<total;i++) {        scanf("%d",&s[i]);    }    printf("打印数组元素");    for(int i=0;i<total;i++) {        printf("%d ",s[i]);    }    printf("\n");    printf("--------------------------------\n");    //定义一个数组指针    int (*p)[total];    p = &s;    for(int i=0;i<total;i++) {        printf("第%d个元素是:%d\n",i+1,*(*p + i));    }    printf("--------------------------------\n");    int length = total-1;    printf("《模拟栈先进后出》\n");    while (length >= 0) {        printf("%d    ",*(*p + length));        --length;    }    printf("\n");    printf("--------------------------------\n");    int index = 0;    printf("《模拟队列先进先出》\n");    while (index < total) {        printf("%d    ",*(*p + index));        ++index;    }    printf("\n");    //i--是先使用i的值,再执行i=i-1操作;--i是先执行i=i-1操作,再使用i的值

标签: #数组指针是什么 #定义数组指针 #定义数组指针变量