日常總結

2020-08-13 12:02:43

 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,所以是負數,負數表達和列印的時候,用反碼錶 碼表示負數。