c - 这个基本的 C 程序总是得到错误的答案,特别是 x 总是 0,y 的值是正确的

标签 c

#include <stdio.h>

int main() {
    char x, y;
    scanf("%d %d", &x, &y);
    printf("%d %d", x, y);
}

例如: 我输入“3 4” 它打印出“0 4”

最佳答案

scanf 中的格式说明符为 %d 时,预期参数的类型为 int*。当预期类型为 int* 时,您正在传递 char* 类型的参数。这会导致未定义的行为。

关于c - 这个基本的 C 程序总是得到错误的答案,特别是 x 总是 0,y 的值是正确的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32173149/

相关文章:

c++ - C/C++ : Is this undefined behavior?(二维数组)

c - 尝试在 C 中分配和调用嵌套结构的值时出现“段错误”错误

python - 如何在C(服务器)中收到来自python(客户端)的 "unpack"数据包?

c - Pebble C 将 char 转换为时间以在 double difftime(time_t end, time_t begin) 中使用

c - 为什么 malloc 真的是不确定的? (Linux/Unix)

c - char* 的位运算

c - 关于动态代码分析的任何引用资料?

c - 查找 char 指针上的第一个操作

c - 回文分区问题中此 DP 数组的基本情况 dp[0] = -1 的目的是什么?

c - 接口(interface)绑定(bind)