在64位操作系统下 (LP64/LLP64模型),下面代码的输出结果是 ()。
#include <iostream>
using namespace std;
int main() {
int a[4] = {1, 2, 3, 4};
int (*p)[4] = &a;
int *q = a;
cout << sizeof(a); // 数组a的大小
cout << sizeof(p); // 指针p的大小
cout << sizeof(p + 1); // 指针运算后的大小(仍是指针)
cout << sizeof(q + 1); // 指针运算后的大小(仍是指针)
cout << (p + 1) - p; // 指针差值(类型为int(*)[4])
cout << (q + 1) - q; // 指针差值(类型为int*)
}
16 8 8 8 1 1
16 8 16 8 1 1
16 8 8 4 4 1
16 8 8 8 4 1