cooksa 2015-02-09 06:11 采纳率: 100%
浏览 1759
已采纳

C语言字符是左值 为什么可修改

#include
using namespace std;

int main()
{
char c[6] = "hello";

c = "s"; //为什么c是不可被修改的左值
c[2] = 's'; //而c中的元素都可以被修改?

return 0;

}

  • 写回答

3条回答 默认 最新

  • 普通网友 领域专家: 编程技术技术领域 2015-02-09 07:12
    关注

    数组名是常量型指针,即 const ,当然不能修改;这个与 const 型常量是一样的,定义了就不能修改。

    c 中的元素,是编译器在堆栈上分配的一块内存,当然可以修改。如果你定义 char *p = "hello",则 这 指向一常量区的字符串。你可以试试去修改,如 p[2] 的值看看。结果当然是不能修改。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?