【发布时间】:2017-06-02 02:08:37
【问题描述】:
我正在自学C语言。
我写了下面的代码并执行了。
没想到“第一个”变量是 0,虽然我输入了 4。
你能解释一下为什么会发生这种情况以及如何解决这个问题吗?
代码:
#include <stdio.h>
#include <stdint.h>
int main(void) {
int8_t first;
printf("Fist parameter:");
scanf("%d", &first);
int8_t second;
printf("Second parameter:");
scanf("%d", &second);
printf("%d * %d == %d\n", first, second, first * second);
return 0;
}
预期:
Fist parameter:4
Second parameter:5
4 * 5 == 20
实际:
Fist parameter:4
Second parameter:5
0 * 5 == 0
【问题讨论】:
-
打开编译器的警告并注意它们。
-
其实那不是重复的。这不是“int8 使用什么格式说明符”的问题,而是一个更有趣的“为什么它会这样工作”的问题。
标签: c