今天遇到一個強制類型轉換的問題:一個是對值進行強制類型轉換,一個是對值的地址進行強制類型進行轉換後再次讀取。得到的結果當然不相同。對變量的值進行強制類型轉換,是把值按照另外一種類型進行存儲後讀取,變量在內存中的存儲形式發生變化;而對變量的地址進行強制類型轉換,是變量在內存中的存儲形式未發生變化,而在變量讀取時讀取的方式發生變化。
例子如下:
#include <stdio.h>
int main()
{
int a = 3;
float b;
float c;
b = (float)a;
c = *((float *)&a);
printf("b = %f\nc = %f\n",b,c);
return 0;
}
結果如下:
程序的內存: