這必須是一個愚蠢的問題,但我無法理解爲什麼會這樣解引用preincremented指針給奇結果
int main()
{
int i=20;
int *p=&i;
cout<<"old p="<<p<<endl;
*(++p) = 10;
cout<<"p="<<p<<endl;
}
在這段代碼中,我得到的輸出: 老P = 0x22ff08 p = oxa
爲什麼指針的值變爲10(0xa)而不是遞增前面的地址並將10賦值給該位置?
*是*未定義的行爲。 – chris
你是什麼意思「增加早先的地址和分配10到那個位置」?你期望的結果是什麼? –
我的想法是,指針變量可能指向新的位置0x22ff0C,並嘗試在那裏輸入值。但現在我明白了。感謝R.Martinho。謝謝你們。 – sajas