強制類型轉換-值和地址

今天遇到一個強制類型轉換的問題:一個是對值進行強制類型轉換,一個是對值的地址進行強制類型進行轉換後再次讀取。得到的結果當然不相同。對變量的值進行強制類型轉換,是把值按照另外一種類型進行存儲後讀取,變量在內存中的存儲形式發生變化;而對變量的地址進行強制類型轉換,是變量在內存中的存儲形式未發生變化,而在變量讀取時讀取的方式發生變化。

例子如下:

 

#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;
}


結果如下:

程序的內存:

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章