pp++
(*pp)++
(**pp) = 0;
以上都不对
看const后面是什么类型,所以第一个const确保*p不会被修改,第二个const确保p不会被修改,pp没有const限制,所以就选A了。
若const限定符在*之后,则const限定的是ptr而不限定*ptr。也就是说,ptr不可以改变其所指向的对象,但能通过该指针修改其所指向对象的值。
const char* const* pp 表示一个指向常量指针的指针,即 pp 是一个指针,指向一个常量指针。 这种类型的指针常用于指向字符串数组或二维数组,可以确保数组内容不被修改。 在上面的例子中,pp 指向 arr 数组的第一个元素,即指向字符串 "Beijing" 的指针。 由于 pp 是一个指向常量指针的指针,因此不能通过 pp 修改指针所指向的字符串, 但可以通过 pp 修改指针本身的值,使其指向数组中的其他元素。
在上面的例子中,pp 指向 arr 数组的第一个元素,即指向字符串 "Beijing" 的指针。 由于 pp 是一个指向常量指针的指针,因此不能通过 pp 修改指针所指向的字符串, 但可以通过 pp 修改指针本身的值,使其指向数组中的其他元素。
这道题你会答吗?花几分钟告诉大家答案吧!
扫描二维码,关注牛客网
下载牛客APP,随时随地刷题
【解析】const 限定一个数据为只读属性。
1.const char p; 限定变量 p 为只读。
2.const char *p; p 为一个指向 char 类型的指针,const 限定 p 指向的数据为只读。所以 *p 的值不能被修改,而指针变量 p 本身的值可以被修改。
3.char * const p; 限定此指针变量为只读,所以 p 的值不能被修改,而 *p 的值可以被修改。
4.const char *const p; 两者皆限定为只读,不能修改。
对比以上,二级指针如下:
1.const char **p; p为一个指向指针的指针,const 限定其最终数据为只读,所以 **p 不能修改,而 p 的值本身可以修改。
2.const char * const *p; 限定二级指针指向的数据和 p 指向的指针为只读。所以 **p 的值不能修改,*p 的值也不能修改。
更多C++基础专业知识讲解,点击链接即可查看
https://www.nowcoder.com/link/zxyl-cpp09