执行完下面的代码后,*(p + 5) 和 arr[1][1] 的值分别是( )。
int arr[3][4] = {{1,2,3,4}, {5,6,7,8}, {9,10,11,12}};
int* p = &arr[0][0];答案D。指针变量存储的是内存地址。定义指针时必须指定指向的类型(如int*指向int)。nullptr表示空指针。
指针必须先初始化再使用。nullptr是空指针常量,不指向任何有效内存。解引用空指针导致崩溃。
【考点】数组内存布局|指针运算|二维数组下标映射
本题考查GESP四级C++数组与指针综合应用。命题人卡住的是学生"二维数组在内存中是行优先连续存储"这一底层认知——多数考生习惯用数学坐标思维,误以为arr[1][1]与arr[0][2]距离相等,完全忽略编译器实际布局。