weixin_51337768 2021-03-14 22:09 采纳率: 20%
浏览 22
已采纳

小白,求问,如下图?

小白,想问一下定义*b那一行,为什么等于号后面的(char*)后面能跟&a,地址能做指针变量吗,也想问一下(char*)去括号有没有什么影响,谢谢了?

#include <stdio.h>

int main()
{
        int a = 0x1234;
        char *b = (char *)&a;

        if (*b == 0x12)
        {
                printf("大端!\n");
        }
        else
        {
                printf("小端!\n");
        }

        return 0;
}

  • 写回答

1条回答 默认 最新

  • 小白小白你好菜 2021-03-14 23:21
    关注

    char *b正常情况下是指向char类型变量的指针,a是int类型,你在给指针赋值时,指针指向的应该是一个地址,所以是&a,因为a和b的类型不同,所以要进行格式强制转换,(char *)是强制转化成char *类型,括号不能去掉

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

报告相同问题?

悬赏问题

  • ¥100 连续两帧图像高速减法
  • ¥15 组策略中的计算机配置策略无法下发
  • ¥15 如何绘制动力学系统的相图
  • ¥15 对接wps接口实现获取元数据
  • ¥20 给自己本科IT专业毕业的妹m找个实习工作
  • ¥15 用友U8:向一个无法连接的网络尝试了一个套接字操作,如何解决?
  • ¥30 我的代码按理说完成了模型的搭建、训练、验证测试等工作(标签-网络|关键词-变化检测)
  • ¥50 mac mini外接显示器 画质字体模糊
  • ¥15 TLS1.2协议通信解密
  • ¥40 图书信息管理系统程序编写