我想用"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]指代的地址相同?