我已经运行了这段代码:
#include <iostream>
using namespace std;
int* make_array(int a, int b, int c) {
int results[3] = { a, b, c };
return &results[0];
}
int main() {
int *results = make_array(5, 2, 3);
for (int i = 0; i < 3; i++) {
cout << "\narray member N:" << i << ": " << *results;
results++;
}
return 0;
}
据我所知,results
变量保存数组[5, 2, 3]
的第一个成员的地址(地址为5)。当我执行results++
地址时,应向前移动32位,以便results
应该是2的地址,但它记录如下:
array member N:0: 5
array member N:1: 1434567088
array member N:2: 541456720
我做错了什么?