不再等待 发表于 2012-9-3 18:06:10

指针,一个不容易发现的错误

#include <stdio.h>

void main()
{
   int *p,i,a;
      p=a;
      for(i=0;i<10;i++)
{
       scanf("%d",p++);
}
       printf("\n");
       for(i=0;i<10;i++,p++)
{
printf("%d",*p);
}
}

请大家指出错误,谢谢

马驰 发表于 2012-9-3 19:37:52

p只初始化了一次,输出时,i=0时 ,p的值已经是&a+4
所以 要先把p的值改回为&a
#include <stdio.h>

void main()
{
   int *p,i,a;
      p=a;
      for(i=0;i<5;i++)
          {
       scanf("%d",p++);
          }
       p=a;       printf("\n");
       for(i=0;i<5;i++,p++)
           {
       printf("%d\n",*p);          
           }
}

韩愈 发表于 2012-10-15 23:26:39

人才!!!!

庄周梦蝶 发表于 2012-10-29 15:56:56

:lol原来如此 .脑筋急转弯了

xsx 发表于 2012-10-29 21:03:53

p的值改变了         

落夜 发表于 2012-10-29 22:12:58

表示很纠结

hackbs 发表于 2012-11-1 08:39:30

谢谢指导。。。。

会飞的熊 发表于 2012-11-4 15:54:11

在第二次调用printf是p的值已经超出了数组的范围了,要把p重新赋予a的值,就是在第二个printf前加个p=a;

路,一直都在 发表于 2012-12-9 17:15:14

我又有一个新问题、、
在单步调试的时候,我发现我按了找了一下*p的值和*p++的值。它的值好像不如scanf函数我们当前输入的值?
求解答为何会这样子

#~帝王之焰~# 发表于 2013-1-5 19:23:26

本帖最后由 #~帝王之焰~# 于 2013-1-5 19:38 编辑


#include <stdio.h>
void main()
{
      int *p,i,a;
       p=a;
       for(i=0;i<10;i++)
{
      scanf("%d",p++);
}
      printf("\n");
      for(i=0,p=a;i<10;i++,p++)
{
   printf("%d",*p);
}
}

听雨欲睡 发表于 2013-1-5 21:32:36

最后一次调用已超出数组范围,系统将分配任意一块内存~~于是最后的值将是不可预料的值~~

bing_bing 发表于 2013-1-6 18:20:31

指针越界了

好多鱼^^ 发表于 2013-1-10 01:31:26

#include <stdio.h>
int main()
{
   int *p,i,a={
          
   };
      p=a;
      for(i=0;i<10;i++)
{
       scanf("%d",p++);
}
       printf("\n");
       for(i=0,--p;i<10;i++,p--)
{
printf("%d\t",*p);
}
}可以到这dayin


1 2 3 4 56 7 8 9 056 45

45      56      9       8       7       56      4       3       2       1
请按任意键继续. . .

風言瘋語 发表于 2013-3-14 07:49:47

确实容易忽略这个细节

fhuang 发表于 2013-3-14 14:19:14

厉害,真难找{:1_1:}

SuperMans2013 发表于 2013-3-14 15:42:46

表示很纠结{:5_96:}

feizixiao 发表于 2013-3-19 00:16:40

程序没有错误。你逻辑错误,你声明了一个数组   但是数组你没初始化的时候里面存的就是随机值。

拈花小仙 发表于 2013-3-19 01:03:45

中国人习惯用1开头,美国人习惯用0开头,没办法,学人家的东西,就得跟着人家习惯来

拈花小仙 发表于 2013-3-19 01:04:46

我一开始还没发现,也有点粗心,指针越界我写时不会,但看别人程序,有时不用心

小亮1201 发表于 2013-3-25 17:21:11

我也看出来了。哈哈!
页: [1] 2 3
查看完整版本: 指针,一个不容易发现的错误