[問題] float *r => int

看板C_and_CPP (C/C++)作者 (熊寶寶)時間16年前 (2010/03/24 23:10), 編輯推噓2(204)
留言6則, 4人參與, 最新討論串1/2 (看更多)
在下最近練習指標的時候遇到一個問題... #include<stdio.h> int main() { int a=999; short int *p; int *q; float *r; double *s; p=(short int*)&a; q=&a; r= (float *) &a; s=(double*)&a; printf("p=%d\n",*p); printf("q=%d\n",*q); printf("r=%s\n",*r); printf("s=%d\n",*s); return 0; } 這樣跑出來的結果 p q s 都會是999 但是唯讀r會是0 有大大可以幫我解釋為什麼嗎? 還有~要如何才能顯示出正確的值? 感恩~ -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 123.192.48.215

03/24 23:12, , 1F
%f
03/24 23:12, 1F

03/24 23:19, , 2F
標題建議可以改主題性一點
03/24 23:19, 2F

03/24 23:35, , 3F
%f的話 會出現0.0000000
03/24 23:35, 3F
※ 編輯: bearbabybaby 來自: 123.192.48.215 (03/24 23:42)

03/24 23:51, , 4F
我猜是因為用指標來指,所以並沒有對值作轉換的動作
03/24 23:51, 4F

03/24 23:53, , 5F
你可以試試在bit相同的情況下,double和float會怎麼
03/24 23:53, 5F

03/24 23:54, , 6F
來解釋表示值
03/24 23:54, 6F
文章代碼(AID): #1BgYjPzK (C_and_CPP)
討論串 (同標題文章)
文章代碼(AID): #1BgYjPzK (C_and_CPP)