我从一开始就练习c编程,但是当我执行简单的C程序来添加两个数字时,我得到了意外的输出,我无法弄清楚,任何人都可以提供编译器如何工作的详细解释此输出的幕后人员。
这是提到的代码。我正在使用基本的 Turbo IDE
#include<stdio.h>
#include<conio.h>
void main()
{
int a,b,c=0;
clrscr();
printf("Enter two numbers:");
scanf("%d%d", &a,&b);
c=a+b;
printf("sum of two numbers are %d", &c);
getch();
}
Output:
Enter two numbers:1
2
sum of two numbers are -16
最佳答案
问题似乎是您在变量 c
上使用了不需要的地址运算符。 &c
是一个指向 c
的指针,所以当你打印它时,你实际上是在尝试打印 c
的内存地址code> 而不是存储在那里的整数值,导致意外的输出。所以
printf("sum of two numbers are %d", &c);
应该变成
printf("sum of two numbers are %d", c);
关于c - 简单 C 程序的不可预测输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51366658/