[問題] int array 轉 double point
編譯器(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--> 720 | 1 | <--- array
|______|
因int size = 4, double size = 8
且a指向的type為double
所以應該是要吃到 0x200000001 (address 720~728)
但印出的結果卻是 1
腦袋有點想不太通
懇請大家賜教
謝謝大家
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 180.176.57.130
※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1503943140.A.F27.html
→
08/29 02:04, , 1F
08/29 02:04, 1F
→
08/29 02:05, , 2F
08/29 02:05, 2F
→
08/29 02:12, , 3F
08/29 02:12, 3F
推
08/29 08:36, , 4F
08/29 08:36, 4F
推
08/29 11:43, , 5F
08/29 11:43, 5F
→
08/29 21:09, , 6F
08/29 21:09, 6F
討論串 (同標題文章)
完整討論串 (本文為第 1 之 2 篇):
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章