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

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

#include
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
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
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
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..
为什么呢..

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

不知道你这个问题是否已经解决, 如果还没有解决的话:

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^