格式说明符不起作用,给出RUNTIME ERROR

时间:2017-03-02 19:28:27

标签: c dev-c++ turbo-c++

#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的新人。

1 个答案:

答案 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;将它们打印出来。