C 为什么不能给局部字符数组变量赋新值

来源:百度知道 编辑:UC知道 时间:2024/05/21 22:51:50
main()
{
char s[6] ;
s = "12345\0"; /* Error temp.c 4: Lvalue required in function main 报错,缺少左值 */
printf(s);
}

C 初学者通常都会对 C 中的数组有这样的疑问。但其实 C 中提供的数组并不是完整的数组概念的语法映射,而只是一种对连续存放对象所提供的基本语法支持。数组名与指针常量等价。而常量是不可赋值的(是右值,不是左值)。
s = "12345\0";
是不行的。
记住,数组名不是数组,是一组对象的存储地址,只能把它当作指针来用。

对于字符型数据是不能这样赋初值的
这样只有对字符串型使用