Maicx 2022-01-12 18:04 采纳率: 100%
浏览 44
已结题

C++问题,对答案不理解


void test119()
{
    int a = 4407873;
    cout << (char*)&a << endl;



}

答案为什么是ABC,希望详细一点。

  • 写回答

4条回答 默认 最新

  • _GX_ 2022-01-12 18:54
    关注

    a的值是4407873,即0x00434241,在小端机器上的内存排列是0x41, 0x42, 0x43, 0x00,即"ABC\0"
    cout << (char*)&a << endl;意思去a的地址并把指针强制转换为指向字符的指针,然后按字符串输出,输出的结果就是ABC

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

报告相同问题?

问题事件

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