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。