c - 简单 C 程序的不可预测输出

标签 c turbo-c

我从一开始就练习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/

相关文章:

c - 在文本文件中搜索 ID (Turbo c)

无法在 C 中写入屏幕内存

c - 如何在 DOS/C 中访问非标准 COM 端口(USB->Serial,COM5+)?

c - C 中不正确的插入队列

c - c中一个未初始化的指针指向的目的地是如何确定的?

c - C中if-else if的顺序

c - 当 0xFF 在 char 数组中时,它与下一个 char 一起被读取为整数

c - 将条件语句定义为变量

c - 评论会阻止 header 防护优化吗?

c - Sprite 纹理中的透明度不起作用