我有一个指向数组的指针,为什么它会给我以下输出?
int main() {
int b[] = {1, 2};
cout << "size of int = " << sizeof(int) << endl;
int *pt = b;
int i = 0;
while( i++ < 2) {
cout << "pt = " << pt << ", b = " << b << endl;
cout << pt - b << endl;
(pt)++;
}
return 0;
}
代码输出:
size of int = 4
pt = 0x7fff576f0c2c, b = 0x7fff576f0c2c
0
pt = 0x7fff576f0c30, b = 0x7fff576f0c2c
1
pt 最初是指向数组 b 开头的指针,为什么 pt-b 给了我 pt 指向的数组的索引,而不是数组的索引乘以一个元素的大小。