为什么"string"在C语言中被认为是"constant"?

Why "string" is considered a "constant" in C language?

为什么"string"在C语言中属于常量范畴?即使它没有与之关联的数值,也不像 "character constant" 具有与之关联的固定整数值(ASCII 值)。 在什么参考文献中,字符串被视为 C 语言中的常量?

因为它是一个字面量,而且字面量应该是不可变的。

考虑一个例子

char *s = "Shubhamdubey2111";
char name[strlen( s ) + 1];

strcpy( name, s );

//...

*s = 'C';

//...

if ( strcmp( name, "Shubhamdubey2111" ) == 0  )
{
    // Oops! Do not trust your eyes!
}

字符串文字存储在进程的初始化只读内存区域中。这就是原因,字符串字面值不能被修改。