"> ">

设有说明const char * const p="ABCD";,则下列选项中正确的是(    )

设有说明const char * const p="ABCD";,则下列选项中正确的是(    )


A、

允许修改指针p本身,且允许通过p修改所指向的数据


B、

允许修改指针p本身,且禁止通过p修改所指向的数据


C、

禁止修改指针p本身,且允许通过p修改所指向的数据


D、

禁止修改指针p本身,且禁止通过p修改所指向的数据


【正确答案】:D
【题目解析】:

C++语言也可以使用const限定访问权限,const修饰指针变量时,基本含义如下:
1)如果唯一的const位于符号*的左侧,表示指针所指数据是常量,数据不能通过本指针改变,但可以通过其他方式进行修改;指针本身是变量,可以指向其他的内存单元。
2)如果唯一的const位于符号*的右侧,表示指针本身是常量,不能让该指针指向其他内存地址;指针所指的数据可以通过本指针进行修改。
3)在符号*的左右各有一个const时,表示指针和指针所指数据都是常量,既不能让指针指向其他地址,也不能通过指针修改所指向的内容。

本题中,

const既出现在*的左侧,也出现在*的右侧,表示指针本身及指针所指的数据都是不可修改的。故本题选D。


Top