当前位置: 代码迷 >> C语言 >> 我认为对指针应该重新赋值 请大家来看看
  详细解决方案

我认为对指针应该重新赋值 请大家来看看

热度:92   发布时间:2007-07-22 15:40:10.0
我认为对指针应该重新赋值 请大家来看看

请看下面的程序
#include <stdio.h>

void main()
{
int a[10],*p=a,i;

printf("input 10 numbers:");

for(i=0;i<10;i++)
scanf("%d",p+i);

printf("a[10]:");

for(i=0;i<10;i++)
printf("%d",*(p+i));

printf("\n");
}
我认为在第一个循环结束后,应该对指针变量重新赋值(P=a;)
因为在第一个循环结束后,指针变量P是指向&a[9]的。
但是,这程序是编译成果的。
我在中间加了p=a ; 语句,也编译成功。
我不知道为什么,请各位指教。

搜索更多相关的解决方案: 赋值  指针  

----------------解决方案--------------------------------------------------------

同意你的观点加上p=a


----------------解决方案--------------------------------------------------------
不加p=a编译成功不代表运行时不出错
----------------解决方案--------------------------------------------------------
不用加 你那是p+i 不是p++

----------------解决方案--------------------------------------------------------
"因为在第一个循环结束后,指针变量P是指向&a[9]的。"

晕,这样认为就不对了~~~~~~~~~~
----------------解决方案--------------------------------------------------------

不用的把,那里是p+i,P指向&a[0],p+i指向&a[9]。


----------------解决方案--------------------------------------------------------
如果是移动指针 就要加
----------------解决方案--------------------------------------------------------

同意4楼的意见~


----------------解决方案--------------------------------------------------------
p的值没有改变(没用经过自加自减运算)
----------------解决方案--------------------------------------------------------
嗯~

搞清楚了
4楼的说得对~!!thank you very much
----------------解决方案--------------------------------------------------------
  相关解决方案