【问题标题】:Printing type-casted types in C在 C 中打印类型转换的类型
【发布时间】:2019-03-27 02:47:06
【问题描述】:
#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); 
}

【问题讨论】:

  • 因为5'5' 不一样。演员阵容甚至没有必要:你可以做char castChar = 5; 并获得相同的结果。
  • 任何用单引号括起来的字符都将具有该字符的 ascii 值。查阅 ascii 表。
  • 我能建议你阅读Markdown editing help吗?您在所有帖子上添加的pre 标签是不必要的,并且会使代码块比需要的大得多。

标签: c


【解决方案1】:

当您将 %d 与字符一起使用时,它会显示字符的 ASCII 值。请改用 %c。

 #include  

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-07-19
    • 1970-01-01
    • 2020-11-17
    • 1970-01-01
    • 2010-10-03
    • 2019-07-21
    • 2012-02-23
    • 2019-01-09
    相关资源
    最近更新 更多