#include<iostream.h>
main(){
int x=5,y=6;
const int*p=&x;
*p=y;
cout<<*p<<endl;

改错题:以下程序中有一处错误,请抄写有错误的语句并指出错误原因。


#include<iostream.h>
main(){
int x=5,y=6;
const int*p=&x;
*p=y;
cout<<*p<<endl;


【正确答案】:

*P=Y;错误,因为指向常量的指针P不能进行左值操作


【题目解析】:

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


Top