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 *类型,括号不能去掉

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

报告相同问题?