4、运行下面代码,屏幕上输出是(     )。

别灰心,再试一次!

💡 真题解析

答案:B

解析:这段C++代码涉及到指针的移动和数组元素的访问。让我们逐步分析代码:

1.double* p_arr = new double [3]; 这行代码在堆上分配了一个包含3个double类型元素的数组,并让指针p_arr指向这个数组的第一个元素。

2.p_arr[0] = 0.2; 将数组的第一个元素设置为0.2。

3.p_arr[1] = 0.5; 将数组的第二个元素设置为0.5。

4.p_arr[2] = 0.8; 将数组的第三个元素设置为0.8。

5.p_arr += 1; 这行代码将指针p_arr向后移动一个double类型的大小,现在p_arr指向数组的第二个元素。

6.cout << p_arr[0] << endl; 这行代码输出p_arr指向的元素(即数组的第二个元素)的值,也就是0.5。

7.p_arr -= 1; 这行代码将指针p_arr向前移动一个double类型的大小,使其再次指向数组的第一个元素。

8.delete p_arr; 释放之前分配的数组内存。

根据上述分析,屏幕上输出的值应该是0.5。

正确答案是B. 0.5。