小白,想问一下定义*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;
}
char *b正常情况下是指向char类型变量的指针,a是int类型,你在给指针赋值时,指针指向的应该是一个地址,所以是&a,因为a和b的类型不同,所以要进行格式强制转换,(char *)是强制转化成char *类型,括号不能去掉