unsigned int temp1=1;
unsigned char *temp2=(unsigned char*)&temp1;
if(!*temp2)
{
}
有人可以解释一下此代码的目的吗?我知道它的语法是如何工作的,但是就像其他阶乘,偶数,字符串长度等代码一样,该代码的标题是什么?
答案 0 :(得分:1)
temp1是一个整数,因此在这种情况下,它是两个字节。通过将temp1设置为1,temp1的字节包含0X01,1包含0X00。将无符号字符指针temp2设置为指向temp1的地址。但是,无符号字符只有一个字节,因此当if语句评估temp2的值时,它仅评估内存中第一个字节的值。一些系统在低位存储器地址中存储整数的低位字节,而其他系统在低位存储器地址中存储高位低位字节。该代码确定当前系统格式化整数值的方式。