为什么数组变量不能赋值字符串常量
为什么数组变量不能赋值字符串常量
好几年不碰C语言了,遇到了个很初级的问题居然一时间懵了,问了一下身边的人居然也解释不清,记录一下。
char c[10];
printf("c = %s\n",c);
大家都知道这种写法是错误的,但是为什么是错的呢?
在《c与指针》这本书里就提到过:
字符串常量的直接值是一个指针,而不是这些字符本身。
而我们都知道数组名本身就是一个地址常量,而地址常量是不可改变的。
所以c=“hello”; 这条赋值语句就相当于在改变数组的地址常量,这显然是错误的。
这里还有个问
原创
2020-12-24 17:46:41 ·
1164 阅读 ·
4 评论