[問題] pointer 的 offset
int N[10];
int i;
int *p;
N = 0x3C
for(p = N,i = 100; p-N<10; ++p,i++)
*p = i+1;
看來 P的位置是 0x3C + 4 (INT) * i (index)
for(;--p-N>=0;) LOOP 一開始P會到 0x64 64-3C =0x28 = 40 = 4*10
printf("%d ",*p);
從--p-N 這裡 程式自然而然可以看到 9
想問的是從數學上去計算 應該是
p-N = 4*i+0x3C - 4*0+0x3C = 4*(i-0)
Complier自己幫我們把4給拿掉是嗎??
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 218.210.106.78
→
10/16 16:19, , 1F
10/16 16:19, 1F
→
10/16 16:22, , 2F
10/16 16:22, 2F
推
10/16 16:47, , 3F
10/16 16:47, 3F
→
10/16 16:48, , 4F
10/16 16:48, 4F
→
10/16 16:48, , 5F
10/16 16:48, 5F
推
10/16 16:51, , 6F
10/16 16:51, 6F
→
10/16 16:51, , 7F
10/16 16:51, 7F
→
10/16 16:52, , 8F
10/16 16:52, 8F
→
10/16 17:06, , 9F
10/16 17:06, 9F
推
10/16 17:17, , 10F
10/16 17:17, 10F
→
10/16 17:25, , 11F
10/16 17:25, 11F
→
10/16 17:27, , 12F
10/16 17:27, 12F
→
10/16 17:27, , 13F
10/16 17:27, 13F
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章