c语言,麻 烦 大 神 帮 我 解 释 下这个是什么原理。

#include <stdio.h>

int main() {
    int n;
    scanf("%c", &n);
    printf("%d\n", n == 97 ? 1 : 0);
    printf("%c\n", n);
    printf("%d", n);
}

这是输入与输出
img

麻 烦 大 神 帮 忙 解 释 一 下
十 分 感 谢

假设当前系统为32位,则int 为4字节,char为1字节。
scanf输入a, 即97,则int前3个字节不变,第4个字节赋值为97,因n未初始化所以前3个字节是随机的。
(不同编译器由于大小端等问题略有差异)
解决方法:初始化int n= 0;

你好,这个我跑出来的结果:

img