次のコードが機能しない理由を理解しようとしています...助けてください:
void incme(double *p)
{
printf("%x,%x\n",p,*p);
*p = *p + 1;
printf("%x,%x\n",p,*p);
}
int main()
{
int i = 1;
incme((double *)&i);
printf("%x,%x",&i,i);
}
出力は次のとおりです。
ff99a348,1
ff99a348,1
ff99a348,1
私は期待しています: ff99a348,1 ff99a348,2 ff99a348,2
ポインターについて知っていることはすべて壊れています...
ありがとう。
編集:
主な質問は、 incme((double *)&i); でキャストされた型について尋ねています。double にキャストして関数に渡さないのはなぜですか? ... eailer を指摘せずに申し訳ありません ....