数组名隐式转换为指针时是右值还是不可修改的左值?
这两天和supermegaboy就这个问题讨论了好久(
在这里),索性重新开个帖来讨论。
据supermegaboy说,标准中规定是右值。
可是来看看著名的
Girlrong的说法:下面总结一下数组的数组名的问题。声明了一个数组TYPE array[n],则数组名称array就有了两重含义:第一,它代表整个数组,它的类型是TYPE [n];第二,它是一个指针,该指针的类型是TYPE*,该指针指向的类型是TYPE,也就是数组单元的类型,该指针指向的内存区就是数组第0号单元,
该指针自己占有单独的内存区,注意它和数组第0号单元占据的内存区是不同的。
该指针的值是不能修改的,即类似array++的表达式是错误的。
楼下的觉得哪一种对?