1
爲什麼指定位置的地址不斷變化?內存中發生了什麼事情會導致這種情況發生,或者我的printf
聲明有什麼問題?爲什麼每次編譯時內存地址都會改變?
#include <stdio.h>
#include <stdlib.h>
int main()
{
char blocks[3] = {'A', 'B', 'C'};
char *ptr = &blocks[0];
char temp;
temp = blocks[0];
printf(" %c, %d ", temp, &temp);
return 0;
}
輸出
A, 1764940775
A, 1731746791
「指向位置」,即'temp',是一個char char變量;不是你的緩衝區,指向它的指針,或者任何與它相關的任何東西(雖然它們也在堆棧中)。這就是說,做到10,000次,你會看到模式形式。 – WhozCraig 2013-04-10 03:09:46