C语言中用指针变量指向数组元素

main()
{int a[10]<br/>int *p,i;<br/>for(i=0;i<10;i++)<br/>scanf("%d",&a[i]);<br/>printf("\n");<br/>for(p-a;p<(a+10);p++)<br/>printf("%d",*p);<br/>}
我希望可以说清楚这些步骤.比如说.一开始定义数组a为整型.然后P指向整型.就这样说下去.对我来说.重要的是学C.如果大家要我加分.我OK.

第1个回答  2013-12-19
在这里for(p-a;p<(a+10);p++)使用指针 p 以前没有对指针赋值。这样不行。这样指针所指的地址是内存的一个随机地址。在给数组a赋值之前要有“p=a”这样才让指针指向数组的首地址。
而且最后的for(p-a;p<(a+10);p++)中的“p-a”使指针重新指向a 的首地址。p<(a+10)是相当于 P最多可以指向a[9] 的地址。 “p++”是让p从a[0]一直上移到p指向a[9]
第2个回答  2013-12-19
定义数组a为整型
定义指向整型的指针变量P,整型变量i
依次输入十个整数
下一个循环,首先P指向数组首地址,即指向数组第一个元素,然后P依次加一,移向下一地址,
即指向数组下一个元素
依次打印输出本回答被网友采纳
第3个回答  2013-12-19
main()
{int a[10]; //定义数组a为整型<br/>int *p=a,i; //p指向a的地址,即a[0]的地址<br/>for(i=0;i<10;i++)<br/>scanf("%d",&a[i]); //给数组a赋值<br/>printf("\n");<br/>for(p-a;p<(a+10);p++) //输出数组元素<br/>printf("%d",*p); //p++表示p指向数组中下一个元素的地址<br/>}

暂时先写这么多,你一开始没给p赋值是不对的~
相似回答