<分区>
Possible Duplicate:
Is array name a pointer in C?
假设我有一个 char 数组,说 arr 并且 arr 将代表第一个元素的地址,所以 arr++ 应该是完全合法的,那么为什么编译器说“需要左值”。
另外,如果我这样做: arr=arr+1 那么为什么它是无效转换。我只是将指针增加一个。编译器告诉我们,在 LHS 上,操作数类型是 char[4],但在 RHS 上,它是 char *。
main()
{
char arr[]={'a','b','c','d'};
for(;arr!=arr+4;arr++) //lvalue required
printf("%c",*arr);
}