第4题 假设整数数组arr[4]= {0, 1, 2, 3};的第一个元素在内存中的地址为0x7ffee4065820,经过int* p = arr; p += 1;后,指针p的值是1。

别灰心,再试一次!

💡 真题解析

【答案】 错误

【考纲知识点】 指针的运算

【解析】

在C++中,当对指针进行算术运算时,其移动的字节数取决于指针所指向的数据类型。在本题中,arr是一个int类型的数组,int* p = arr将指针p指向数组arr的首元素。当执行p += 1时,指针p会按照int类型的大小向后移动一个元素的位置。在大多数系统中,int类型通常占4个字节,所以p的值会增加4,而不是1。此时p的值应该是0x7ffee4065820 + 4 = 0x7ffee4065824,它指向数组arr的第二个元素1的地址,而不是值为1。