Shinone+const 2022-10-03 12:10 采纳率: 92%
浏览 25
已结题

scanf不用&用地址数结果有成功和不成功

操作用的codeblocks,今天看了指针,想试试scanf不用&,结果一个程序做了一些尝试后(指被注释掉的乱七八糟的操作),尝试失败,打印不出输入的值,打印值恒为0
如果我注释掉

#include<stdio.h>
int main(void)
{
 //int k = 1;
  //int p = &k;
  //int m =10;
  int a;
 //int jk;
  scanf("%d",6422044);
  printf("%d\n",a);
  return 0;
}


输入10,打印出10,正确

可如果我不注释掉

#include<stdio.h>
int main(void)
{
  int k = 1;
  int p = &k;
  int m =10;
  int a;
  int jk;
  scanf("%d",6422044);
  printf("%d\n",a);
  return 0;
}


无论输什么,打印结果就恒为0
我也不懂计算机原理,就想会不会是引入新变量导致老变量地址换啦?
于是我重新打印a的地址

#include<stdio.h>
int main(void)
{
  int k = 1;
  int p = &k;
  int m =10;
  int a;
  int jk;
  //scanf("%d",6422044);
  printf("%d\n",&a);
  return 0;
}


结果为6422032
于是我在尝试更改地址数

#include<stdio.h>
int main(void)
{
  int k = 1;
  int p = &k;
  int m =10;
  int a;
  int jk;
  scanf("%d",6422032);
  printf("%d\n",a);
  return 0;
}


结果还是输入啥都打印0..
为什么呢..

  • 写回答

2条回答 默认 最新

  • 快乐鹦鹉 2022-10-03 12:18
    关注

    每次运行的地址都是不确定的啊。你上次测试时6422032,但下次运行a的地址可能就是别的了啊。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 10月11日
  • 已采纳回答 10月3日
  • 创建了问题 10月3日

悬赏问题

  • ¥15 35114 SVAC视频验签的问题
  • ¥15 impedancepy
  • ¥15 在虚拟机环境下完成以下,要求截图!
  • ¥15 求往届大挑得奖作品(ppt…)
  • ¥15 如何在vue.config.js中读取到public文件夹下window.APP_CONFIG.API_BASE_URL的值
  • ¥50 浦育平台scratch图形化编程
  • ¥20 求这个的原理图 只要原理图
  • ¥15 vue2项目中,如何配置环境,可以在打完包之后修改请求的服务器地址
  • ¥20 微信的店铺小程序如何修改背景图
  • ¥15 UE5.1局部变量对蓝图不可见