何ですか(float*)
gの場合に特別に行います。もし私がg = *&i;
と書いたら、通常はgut = fであるが、g = *(float*)&i;
ならば、なぜg = 0.0000?異なるデータ型へのポインタ型キャスト
g = *&i;
オペレータ*
と&
が互いに打ち消し合うので、コードがあったかのように結果は:
g = i;
行ラインで
#include <stdio.h>
int main()
{
int i = 37;
int *p;
p = &i;
float f = i;
printf("%d\n", i);
printf("%d\n", p);
printf("%d\n", *p);
float g = *(float*) &i;
printf("i = %d f = %f g = %f", i, f, g);
}
"floatポインタへの整数ポインタの再解釈"とは何か "floatへのintの代入"とはどのように違うのですか? –
'int'から' float'への代入は、 'int'値が> = 2 ** 24。 –
詳細を編集しました。 @ウェザーヴェーンは大丈夫です(私は24歳よりも16歳はよく理解しています)。 –