预测以下程序的输出
#include
using namespace std;
int main()
{
const char* p = "12345";
const char **q = &p;
*q = "abcde";
const char *s = ++p;
p = "XYZWVU";
cout << *++s;
return 0;
}
(A)编译器错误
(B) c
(C) b
(D)垃圾价值答案: (B)
说明:输出为“ c”
const char * p =“ 12345”声明一个指向常量的指针。因此,我们无法为* p分配其他内容,但可以为p分配新值。
const char ** q =&p;声明一个指向指针的指针。我们无法为** q分配其他内容,但可以为q和* q分配新的值。
* q =“ abcde”;将p更改为指向“ abcde”
const char * s = ++ p;将字面量“ bcde”的地址分配给s。同样,不能给* s分配新值,但是可以更改s。
语句printf(“%cn”,* ++ s)将s更改为“ cde”,并打印了s的第一个字符。
这个问题的测验
想要从精选的最佳视频中学习和练习问题,请查看《基础知识到高级C的C基础课程》。