欢迎大家来到IT世界,在知识的湖畔探索吧!
int* p1[5];
欢迎大家来到IT世界,在知识的湖畔探索吧!
因为[]的优先级高于*,所以p1先与[]结合,p1[5]:定义一个长度为5的数组,数组名为p1,int*修饰的是数组的内容,即数组中每个元素的类型。这条语句的完整解读是声明一个包含5个指向int指针类型的数组,数组名为p1;
欢迎大家来到IT世界,在知识的湖畔探索吧!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的值
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://itzsg.com/93294.html