#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新手。

最佳答案

#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;
}


在扫描任何原始数据类型之前,需要“&”。

编译时,您将给出a和b的直接值,就好像它们是内存位置一样,并且程序正在尝试将这些值作为地址来存储扫描的值。

这使您可以将文字地址存储为整数,并且可以正常工作。但是,对于您要执行的操作,您想提供a和b的地址。

“&”允许您将变量的地址(通过引用传递)传递给函数,因此您可以在常规范围之外编辑内容。

tldr;使用“&”来扫描基本数据类型(short,int,long,char,float,double)。不要使用'&'将其打印出来。

关于c - 格式说明符不起作用,出现运行时错误,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/42564269/

10-15 00:26
查看更多