作者bearbabybaby (熊寶寶)
看板C_and_CPP
標題[問題] float *r => int
時間Wed Mar 24 23:10:14 2010
在下最近練習指標的時候遇到一個問題...
#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
推 yan04870449:%f 03/24 23:12
推 nowar100:標題建議可以改主題性一點 03/24 23:19
→ bearbabybaby:%f的話 會出現0.0000000 03/24 23:35
※ 編輯: bearbabybaby 來自: 123.192.48.215 (03/24 23:42)
→ tsaiminghan:我猜是因為用指標來指,所以並沒有對值作轉換的動作 03/24 23:51
→ tsaiminghan:你可以試試在bit相同的情況下,double和float會怎麼 03/24 23:53
→ tsaiminghan:來解釋表示值 03/24 23:54