You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为何在C语言中'5' + '9'的运算结果为110?

为什么这段C语言代码输出sum=110?

直接拆解代码里的关键逻辑:

  1. 字符的本质是ASCII码值
    给char变量赋值'5'和'9'时,存储的不是字符本身,而是它们对应的ASCII编码数值。在ASCII表中:

    • '5'对应的十进制数值是53
    • '9'对应的十进制数值是57
  2. 字符运算的隐式转换
    执行sum = c1 + c2时,C语言会把char类型的c1和c2自动转换为int类型进行计算:53 + 57 = 110。计算结果会被赋值给char类型的sum,而110在常见的signed char取值范围(-128~127)内,所以能正常存储。

  3. printf的格式输出
    printf("sum=%d", sum)里的%d是输出十进制整数的格式符,它会把char类型的sum再次提升为int类型,输出其存储的数值110,最终打印出sum=110。

内容的提问来源于stack exchange,提问作者Muhammad Raffey

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.19 21:55:27