操作用的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..
为什么呢..