前言:
如今小伙伴们对“数组指针是什么”可能比较重视,姐妹们都需要剖析一些“数组指针是什么”的相关知识。那么小编同时在网上网罗了一些关于“数组指针是什么””的相关知识,希望朋友们能喜欢,兄弟们快快来了解一下吧!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的值
版权声明:
本站文章均来自互联网搜集,如有侵犯您的权益,请联系我们删除,谢谢。