执行下面的 C++ 代码,会输出 8,因为两个指针地址相差 8 个字节(假设 int 占 4 字节)。
int arr[5] = {1, 2, 3, 4, 5};
int* p1 = arr;
int* p2 = arr + 2;
cout << p2 - p1; // 输出结果答案B。计算机存储的基本单位是Byte(字节),用大写B表示。1 Byte = 8 bits。
易错点:Byte(B)和bit(b)容易混淆。1 Byte = 8 bits。大写B是字节,小写b是位。
【考点】指针运算|数组指针|C++ 标准
四级 C++ 必考指针与数组的基础关系。命题人在这里埋的是概念混淆陷阱——很多考生背过"指针相减得元素个数"的结论,但看到题干里"地址相差 8 个字节"这种偷换概念的表述就条件反射判对,其实这是典型的以偏概全。