gpt4 book ai didi

c - 在 C 中打印类型转换类型

转载 作者:太空宇宙 更新时间:2023-11-04 01:17:18 24 4
gpt4 key购买 nike

#include <stdio.h>

int main(void) {
int nr = 5;
char castChar = (char)nr;
char realChar = '5';
printf("The value is: %d\n", castChar);
}

如果编译以上代码,输出将是:

The value is: 5

但是如果编译下面的代码,控制台将输出值 53。为什么它打印的与打印“castChar”时的打印不一样?

#include <stdio.h>

int main(void) {
int nr = 5;
char castChar = (char)nr;
char realChar = '5';
printf("The value is: %d\n", realChar);
}

最佳答案

因为castChar的值是整数值5,而realChar的值是字符的整数编码值 '5' (ASCII 53)。这些不是相同的值。

类型转换与它无关。或者,更准确地说,将 nr 转换为 char 不会为您提供字符值 '5',它只是将整数值 5 分配给更窄的类型。

如果您期望输出 5,那么您需要使用 %c 说明符打印 realChar,而不是 %d 说明符。

关于c - 在 C 中打印类型转换类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54915658/

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