零少 发表于 2014-7-7 00:25:03

这个在谭浩强那本书讲过,是指针的位置没有初始化的造成的。

reg163 发表于 2014-7-7 12:55:37

汗,终于死得心服口服了

hfut_wangfei 发表于 2014-7-7 17:53:29

使用指针时,需要随时注意指针的位置

zhangzhilin 发表于 2014-9-8 10:28:29

太厉害了{:1_1:}

轮回的夏 发表于 2016-8-18 17:21:44

这个貌似是一个很就以前的帖子了,估计楼主早就不玩了把
我今天看到小甲鱼老师在视频里提出这个问题,让我左思右想,拿着自己正确的代码一行一行的对比,终于给我发现了错误,这个错误出现在第一个for循环之中,他让p自加了十次之后,p指向的地址已经不是a数组的地址,而是a数组后面的地址了,我也觉得这个问题是比较难发现的{:10_257:}

DreamNext、初墨 发表于 2019-7-28 15:07:05

#include"stdio.h"
int main()
{
    int a;
    int i;
    int *p;
    p=a;

    for(i=0;i<10;i++)
    {
      scanf("%d",&a);
    }
    for(i=0;i<10;i++,p++)
    {
      printf("%d ",*p);
    }
    printf("\n");
    return 0;
}
我用mac系统的xcode并没有出错,尴尬了。。。运行也是正常的

回忆浅离 发表于 2019-7-31 12:57:39

#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);
}
}
指针越界了,改成11就行了

1085993013 发表于 2020-3-19 11:13:16

将scanf里的p++改为p+i。不要问为什么 因为我也不知道,可能是指针变量所占空间与整型变量所占空间不一样吧 我用的是vc+++6.0 别的编辑器不知道了。

永恒王座 发表于 2020-5-7 18:45:24

看不懂啊

阿敏c. 发表于 2020-5-27 16:52:38

p的值已经发生了改变,对应的地址不再是a数组的任何一个元素
可以改为 增加一条语句 p-=1;然后printf(“%d ”,*(p-i))

编程爱好者kguj 发表于 2020-6-1 22:24:48

#include <stdio.h>

void main()
{
    int *p, i, a;

    p = a;

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

编程爱好者kguj 发表于 2020-6-1 22:25:40

#include <stdio.h>

void main()
{
    int *p, i, a;

    p = a;

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

编程爱好者kguj 发表于 2020-6-1 22:26:52

没初始化{:5_108:}

编程爱好者kguj 发表于 2020-6-1 22:30:39

桌面

编程爱好者kguj 发表于 2020-6-1 22:32:16

---------------------Configuration: wrong - Win32 Debug------------------------
Compiling___
wrong .c
wrong.obj - 0 error(s), 0 uarning(s)

编程爱好者kguj 发表于 2020-6-1 22:33:54

【输入】:1 2 3 4 5 6 7 8 9 0
【输出】:1234567890Press any key to continue.

编程爱好者kguj 发表于 2020-6-2 18:04:14

{:5_108:}

烤红薯达人 发表于 2022-3-15 04:16:29

气死我了,我寻思了一晚上,我觉得我没错啊,重新赋值p=a,结果还是错,原来是第一个for后面加了分号啊啊啊啊啊!!!!!!!!!!!!!
页: 1 2 [3]
查看完整版本: 指针,一个不容易发现的错误