Passerby_CJ 2021-12-03 23:29 采纳率: 100%
浏览 38
已结题

字符变量运算后ch应该为140,输出时为何为ch=-116?

代码为:

#include <stdio.h>                                                             
void main()
{
  char ch1,ch2,ch;
  unsigned char c;
  int a;
  ch1=80;
  ch2=60;
  ch=ch1+ch2;
  c=ch1+ch2;
  a=ch1+ch2;
  printf("ch1+ch2=%d\n",ch1+ch2);
  printf("ch=%d\n",ch);
  printf("c=%d\n",c);
  printf("a=%d\n",a);
}

运行后为

img

遇到的问题是:
输出的ch,为什么ch= -116,而不是ch=140

  • 写回答

1条回答 默认 最新

  • 关注

    char类型取值范围是 -128 到 127 ,140超过范围了,
    你赋值140 等于是 140 - 256 = -116

    如有帮助,望采纳!谢谢!

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录

报告相同问题?

问题事件

  • 系统已结题 12月11日
  • 已采纳回答 12月3日
  • 创建了问题 12月3日

悬赏问题

  • ¥60 ESP32怎么烧录自启动程序
  • ¥50 html2canvas超出滚动条不显示
  • ¥15 MATLAB四叉树处理长方形tif文件
  • ¥15 java业务性能问题求解(sql,业务设计相关)
  • ¥15 52810 尾椎c三个a 写蓝牙地址
  • ¥15 elmos524.33 eeprom的读写问题
  • ¥15 使用Java milo连接Kepserver服务端报错?
  • ¥15 用ADS设计一款的射频功率放大器
  • ¥15 怎么求交点连线的理论解?
  • ¥20 软件开发方法学习来了