c - 将字符打印为整数

标签 c

int main(){
    char a = 65;
    a=a+5;
    printf("%d\n",a);
}

我想我至少会收到一个警告,提示我正在尝试打印 %d 但变量是 char

为什么这样打印没有问题?

最佳答案

很大程度上由于历史原因,字符是小整数,所有整数运算都在 int 中完成类型或更宽。软件有时不得不将字符作为整数代码处理,有时作为要打印的东西处理,因此 C 使用 char 开发。类型灵活。

无论intunsigned int可以在表达式中使用,包括函数参数,你可以使用 char相反。

如果我们重新设计语言,我们可能会区分 char -作为字符来自 char -as-integer 并且需要显式转换才能在它们之间进行转换。然而,语言就是这样。

关于c - 将字符打印为整数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54445849/

相关文章:

c++ - CUrl(MSVS 库)还是 libcurl?

c - 用于实时捕获的 pcap 逻辑

c - 在初始化互斥量时在简单的生产者消费者示例中出错

c - 包含 unicode 字符的 Unicode 字符串始终为空

c - 无法释放结构

c - %*d 表示一个或多个整数吗?

c - 有没有办法在单个翻译单元中理智地使用 GCC __attribute__((noreturn)) 和 <stdnoreturn.h> ?

c - 为什么我的程序没有错误地停止工作?

c - Sublime Text 2 C .so 构建系统

iphone - 初始化不同对象的最佳方式