亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

我想用"p->m_iX = 某值;"來進行賦值,在更新指針"++p"時,正好看下p指向的地址和p[i]的地址是否一樣,結果卻并不相同,為什么?

int?main()?{
????//堆實例化
????Coordinate?*p?=?new?Coordinate[3];
????printf("數組的第1個元素的地址:%x\n",?p);
????printf("數組的第1個元素的地址:%x\n\n",?&p[0]);

????++p;
????printf("數組的第2個元素的地址:%x\n",?p);
????printf("數組的第2個元素的地址:%x\n\n",?&p[1]);

????++p;
????printf("數組的第3個元素的地址:%x\n",?p);
????printf("數組的第3個元素的地址:%x\n\n",?&p[2]);
}

結果是:

數組的第1個元素的地址:3bc04b60
數組的第1個元素的地址:3bc04b60

數組的第2個元素的地址:3bc04b68
數組的第2個元素的地址:3bc04b70

數組的第3個元素的地址:3bc04b70
數組的第3個元素的地址:3bc04b80

為什么只有第一個元素的p和&p[0]指代的地址相同?

正在回答

1 回答

如果你采用++p了,那么你這個時候就不能使用p[1]或者是p[2]了,這個時候,你應該是用p[0],如果你不用++p的話,那么你就可以用你現在這個方法了

1 回復 有任何疑惑可以回復我~
#1

Jeffacode 提問者

哦,懂了!就是說,在用了一次++p;后,原先的p[1]現在是p[0]
2015-06-16 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消
C++遠征之封裝篇(下)
  • 參與學習       70902    人
  • 解答問題       534    個

封裝--面向對象三大特征之一,通過案例讓C++所學知識融會貫通

進入課程

我想用"p->m_iX = 某值;"來進行賦值,在更新指針"++p"時,正好看下p指向的地址和p[i]的地址是否一樣,結果卻并不相同,為什么?

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號