📜  C ++ | const关键字|问题1

📅  最后修改于: 2021-06-01 03:15:37             🧑  作者: Mango

预测以下程序的输出

#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基础课程》。