假设已经有定义“const char * const name="Zhang";”,下面的语句中正确的是( )。 A. name[3]='a'; B. name="lin"; C. name=new char[5]; D. cout<<name[3];
时间: 2023-06-16 17:04:54 浏览: 120
VC++ string_format(const char* format, ...)
5星 · 资源好评率100%
正确的语句是D. `cout<<name[3];`,因为该语句输出字符串`name`中下标为3的字符,即字母"g"。其他选项都是错误的:
A. `name[3]='a';` 会导致编译错误,因为`name`是一个指向常量字符的指针,无法修改其指向的数据。
B. `name="lin";` 也会导致编译错误,因为`name`是一个指向常量字符的指针,无法修改其指向。
C. `name=new char[5];` 会导致内存泄漏,因为在赋值之前并没有释放`name`原来指向的内存空间,同时也会导致`name`指针的类型发生改变,不再是指向常量字符的指针。
阅读全文