看板 C_and_CPP 關於我們 聯絡資訊
在下最近練習指標的時候遇到一個問題... #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