gpt4 book ai didi

c - 小C程序运行

转载 作者:行者123 更新时间:2023-12-01 16:26:24 25 4
gpt4 key购买 nike

Practice.c

#include <stdio.h>

main()
{
char a;

printf("\nEnter Anything = ");
scanf("%c",&a); <Line 1>

printf("\n%d",a);
printf("\n%c",a);
}

Output 1 : Enter Character = 5

53
5
Output 2 : Enter Character = a

97
a

这个程序完全按照书本执行。


New.c

#include <stdio.h>

main()
{
char a;

printf("\nEnter Character = ");
scanf("%d",&a); <Line 1>

printf("\n%d",a);
printf("\n%c",a);
}

Output 1 : Enter Character = 5

5

Output 2 : Enter Character = a

0

此程序与 Practice.c 相同,仅略有更改。这不是一个问题,但我在程序的 Line 1 表示的行中错误地输入了 %d 而不是 %c 。我的这个错误产生了两个截然不同的输出。其背后的具体原因是什么?

最佳答案

ASCII 32 以下,均为不可打印字符。在第二个代码中,您正在读取一个 int ,然后尝试打印不可打印的等效字符。

对于第二个输入 ascanf 不会读取该字符并将其保留在缓冲区中,因为它需要一个整数而不是字符。变量 a 未初始化,您现在正在访问未初始化的变量。这会调用未定义的行为

关于c - 小C程序运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23948100/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com