#include<stdlib.h>
#include<stdio.h>
int main()
{
int a,b;
printf("Enter two numbers : ");
scanf("%d %d",a,b);
printf("%d %d",a,b);
return 0;
}
为什么这段代码用C编写并保存为New.c,在Dev C ++和Turbo C ++编译器中都会出现运行时错误? 执行第一个printf后,它取值,突然屏幕熄灭。请帮我。我是C的新人。
答案 0 :(得分:1)
#include<stdlib.h>
#include<stdio.h>
int main()
{
int a,b;
printf("Enter two numbers : ");
scanf("%d %d", &a, &b);
printf("%d %d",a,b);
return 0;
}
你需要&#39;&amp;&#39;在扫描任何原始数据类型之前。
编译时,您可以直接给出a和b的直接值,就像它们的内存位置一样,并且您的程序正在尝试将这些值作为地址来存储扫描的值。
这允许您将文字地址存储为整数,并且COULD可以正常工作。但是,对于您尝试执行的操作,您需要提供a和b的地址。
&#39;&amp;&#39;允许您将变量的地址(通过引用传递)传递给函数,因此您可以编辑正常范围之外的内容。
tldr;使用&#39;&amp;&#39;扫描基本数据类型(short,int,long,char,float,double)。唐&#39;使用&#39;&amp;&#39;将它们打印出来。