日常总结

 int data=0x55667788;

char ch0 = (char *)&data[0];

这句是错误的,因为&的优先级小于[ ]的优先级,加个()就对了

char ch0 = ((char *)&data)[0];

char ch1 = ((char *)&data)[1];

 

 

 

 

printf("0x%8x\n",ch0);

结果打印0xffffff88

printf("0x%8x\n",ch1);

结果打印0x00000077

因为0x8的最高位是1,所以是负数,负数表达和打印的时候,用反码表示负数。

 

你可能感兴趣的:(c语言)