Pengboi* 2022-06-13 11:11 采纳率: 100%
浏览 21
已结题

求解一下这道共同体的题为什么结果为2不是5

以下程序的输出结果是
main ( ) {
union {
char i [ 2 ] ;
int k ;
} r;
r.i[0]=2;
r.i[1]=5;
printf (''%d'',r.k);

  • 写回答

4条回答 默认 最新

  • Kx_Kevin 2022-06-13 11:42
    关注

    因为存储时有大小端问题,你初始化的char类型两个字节,在真实存放时可能是[05][02]的排列,你可以尝试用%x来打印k,应该能一目了然

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(3条)

报告相同问题?

问题事件

  • 系统已结题 6月24日
  • 已采纳回答 6月16日
  • 创建了问题 6月13日

悬赏问题

  • ¥50 使用MS Log Parser查询使用Bitvise SSH Server登录的IP
  • ¥20 校园二手交易小程序搭建
  • ¥15 请问在ubuntu用conda创建环境报错怎么能解决
  • ¥15 STM32CubeMX/proteus按键控制指示灯颜色切换
  • ¥20 python,计算区位熵和扩张指数
  • ¥15 Python环境配置
  • ¥15 大四学生的困惑,有偿提问!
  • ¥15 解决页面无法编入索引:被“noindex”标签排除的问题?
  • ¥15 arduino测量电阻
  • ¥15 快手uid转快手号谁能解决 需要开发