[問題] int array 轉 double point

作者: usanhuang (呱呱)   2017-08-29 01:58:58
編譯器(Ex: GCC, clang, VC++...)+目標環境(跟開發平台不同的話需列出)
Dev C
問題(Question):
剛剛看到一個有點想不通的問題
void Test()
{
int array[]={1,2,3,4,5};
double* a = (double*) (&array[0]);
printf("%d\n",*a);
printf("\n");
}
address value
______
| |
732 | 4 |
|______|
| |
728 | 3 |
|______|
| |
724 | 2 |
|______|
| |
a
作者: Schottky (順風相送)   2017-08-29 02:04:00
因為你在 printf 用 %d ..... 小心點! 這樣用會出事的!可以一眼看出來是因為我也出過事 XD
作者: littleshan (我要加入劍道社!)   2017-08-29 02:12:00
undefined behavior
作者: chuegou (chuegou)   2017-08-29 08:36:00
printf哪裡也要轉型
作者: Killercat (殺人貓™)   2017-08-29 11:43:00
你這想法太理所當然 沒考慮endian... XD
作者: usanhuang (呱呱)   2017-08-29 21:09:00
謝謝大家的解惑 真的完全沒想到跟%d那邊有關

Links booklink

Contact Us: admin [ a t ] ucptt.com