我正在和一位對低級語言不熟悉的人以及今天的手動內存管理進行交流,並盡我所能解釋指針。遞歸指針
然後,他想出了:
#include <stdio.h>
int main()
{
int v = 0;
void* vp = &v;
int i = 0;
for(; i < 10; ++i)
{
printf("vp: %p, &vp: %p\n", vp, &vp);
vp = &vp;
}
}
的這是輸出:
vp: 0xbfd29bf8, &vp: 0xbfd29bf4
vp: 0xbfd29bf4, &vp: 0xbfd29bf4
vp: 0xbfd29bf4, &vp: 0xbfd29bf4
vp: 0xbfd29bf4, &vp: 0xbfd29bf4
vp: 0xbfd29bf4, &vp: 0xbfd29bf4
vp: 0xbfd29bf4, &vp: 0xbfd29bf4
vp: 0xbfd29bf4, &vp: 0xbfd29bf4
vp: 0xbfd29bf4, &vp: 0xbfd29bf4
vp: 0xbfd29bf4, &vp: 0xbfd29bf4
vp: 0xbfd29bf4, &vp: 0xbfd29bf4
這是沒有意義的他作爲副總裁應該= &副總裁!我很慚愧地說,我不知道這裏發生了什麼事。所以,這裏發生了什麼?
Hmn,我沒有意識到&vp腐爛vp?爲什麼不在printf中這樣做? –
@ KimSun-wu:它不會衰退。 –
'&vp'不衰減爲'vp'。該分配的作用是將'vp'的地址存儲在'vp'(屬於'vp'的RAM單元)中。所以,在地址0xbfd29bf4你有值0xbfd29bf4。 –