![](https://iknow-base.cdn.bcebos.com/lxb/notice.png)
一道C++题目,求详细解答
下列语句中,错误的是()。A.constintbuffer=256;B.constinttemp;C.constdouble*point;D.constdouble*rt...
下列语句中,错误的是( )。
A.constint buffer=256;
B.constint temp;
C.constdouble *point;
D.constdouble *rt=new double(5.5); 展开
A.constint buffer=256;
B.constint temp;
C.constdouble *point;
D.constdouble *rt=new double(5.5); 展开
2个回答
展开全部
答案是B,因为常量在定义后就不能被修改,所以定义时必须初始化。
C正确是因为这里的point是一个指向double类型的const对象的指针,const限定了point指针所指向的对象的类型,而并非point本身。也就是说,point本身并不是const。在定义时不需要对它进行初始化。如果需要的话,允许给point重新赋值,使其指向另一个const对象。但是不能通过point修改其所指对象的值。
C正确是因为这里的point是一个指向double类型的const对象的指针,const限定了point指针所指向的对象的类型,而并非point本身。也就是说,point本身并不是const。在定义时不需要对它进行初始化。如果需要的话,允许给point重新赋值,使其指向另一个const对象。但是不能通过point修改其所指对象的值。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询