打印
[技术讨论]

数组与指针相互赋值,array[10]运行结果应该是9,可结果很让人不解

[复制链接]
393|1
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
畅想天子|  楼主 | 2022-5-30 16:45 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
输入数据 指针++,同时指针的内容赋值给数组,可是数组最后输出,数据不正确
这个程序究竟错在哪里
#include<stdio.h>
#include<string.h>
main()
{
  int array[10],*pointer=array,i;
  printf("请输入10个数据:");
  for(i=0;i<10;i++)
  {
      
          scanf("%d",pointer+i); //手动输入0 1 2 3 4 5 6 7 8 9
          array[i]=*(pointer+i);
  }
  printf("数组[10]运行结果:%d\n",array[10]);//Visual 6.0运行结果:1638280??????
  for(i=0;i<10;i++)
          printf("%d\n",*(pointer+i));//输出正确
}

使用特权

评论回复
沙发
畅想天子|  楼主 | 2022-5-31 09:47 | 只看该作者
本帖最后由 畅想天子 于 2022-5-31 10:16 编辑

已解决 初始化时array数组有十个数据,实际运行时是 array[0] ~ array[9]. 所以输出array[10] 出现的是乱码

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

57

主题

331

帖子

2

粉丝