ahr123 发表于 2018-8-13 18:22:34

求助 c语言 指针 二维数组问题

#include<stdio.h>
void main()
{
        int n,x,y,a={0,1,2,3,4,5,6,7,8,9,10,11};
        int (*p);
        p=a;
        printf("please input x , y :\n");
        scanf("%d %d",&x,&y);
        printf("%d\n",*((*p+x)+y));
}
代码如上,为何第0行可以正常输出,第1 2行还是输出第0行的值

无符号整形 发表于 2018-8-13 18:24:05

什么??第0行??

claws0n 发表于 2018-8-13 18:28:04

本帖最后由 claws0n 于 2018-8-13 18:32 编辑


#include<stdio.h>
void main()
{
      int n, x, y;
      int a={0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11};
      int (*p);
      p=a;
      printf("please input x , y :\n");   // x, y 是坐标吧?
      scanf("%d %d", &x, &y);
      printf("%d\n", *(*(p+x)+y) );   // 错误
}
可以加入适当的空格吗?看了会晕{:5_99:}

ahr123 发表于 2018-8-13 18:40:14

不好意思~就是 xy是坐标, x==0时可以正常输出,x ==1 或x==2都不能正常输出。

ba21 发表于 2018-8-13 18:50:38

没问题, 确认下你的输入格式是不是正确。

ahr123 发表于 2018-8-13 18:58:29

麻烦问一下楼上是直接复制代码吗 为啥我这里还是不行。。都是英文啊

claws0n 发表于 2018-8-13 19:46:21

本帖最后由 claws0n 于 2018-8-13 19:47 编辑

ahr123 发表于 2018-8-13 18:58
麻烦问一下楼上是直接复制代码吗 为啥我这里还是不行。。都是英文啊

楼主,您的错误,我指示出来,也改过来了。复制贴上就好
另外,您输入的时候可以空格,但不可写逗号,因为scanf里没有逗号

ahr123 发表于 2018-8-13 20:25:37

感谢楼上 刚才自己没看到,原来是*位置错了,再次感谢!
页: [1]
查看完整版本: 求助 c语言 指针 二维数组问题