首页 > 试题广场 >

假设已经有定义“ const char * const na

[单选题]
对于下面代码段
const char * const name = " Chen ";
下面的语句中正确的是?

  • name[3]='a';
  • name="lin";
  • name=new char[5];
  • cout<<name[3];
推荐
D 说明:name被定义为指向常量的常指针,所以它所指的内容和本身的内容都不能修

改,而“ name [ 3 ]:'a ';"修改了name所指的常量"'name="lin";"和"name=new;"修改了常指针,只有D输出一个字符是正确的。

发表于 2018-05-05 21:09:36 回复(1)
const修饰谁,谁就不能变。如const *p,则值不变;*const p,则地址p不变;const * const p,则地址和值都不能变~老const了~
发表于 2021-04-29 19:02:38 回复(1)
const在*之前则const限定指针而非指向对象,指针不能改变但可以通过该指针改变对象.即给指针一个只读.
const在*之后则const限定本指针不能更改指向目标,而非指针不能更改.即让指针无法改目标的值.
本题指针有2个性质,本身的值不能更改,也不能通过它去改值.

不知道第二种汇编怎么实现的...


发表于 2019-02-07 21:00:40 回复(0)
name为常量指针,不能被修改
发表于 2019-03-09 22:43:12 回复(0)
小白问一下大佬,指针不是指向了字符串的首地址,不应该是指向了c吗?在访问时候指针移动了,这不算改变指针指向吗?
发表于 2024-08-03 13:53:53 回复(3)
指向不能改,再开堆就指向了另一个堆
发表于 2023-02-16 12:39:55 回复(0)
cout不是c++的吗
发表于 2024-06-03 08:43:57 回复(0)
const char (*const name) = "Chen"; =====>const *p 值不变,AB错。
发表于 2023-08-15 12:26:02 回复(0)

为什么题目中冒号也可以赋值?

发表于 2019-07-19 08:52:24 回复(1)