能举个数组名作左值的例子吗?

#include <stdio.h>
int main()
{
    int a[3]={1,2,3};
    printf("%p\n", &a);
    return 0;
}

a是指针常量,取地址运算符运算对象是左值。

常量不应该是右值吗?该怎么理解?

取地址运算符只能是右值,没毛病

a数组本身是常量,不能修改a数组的地址,但a数组本身存储的地址不是常量啊

数组作为左值的例子:

int k = 0;

a = &k;

这样就会提示:表达式必须是可修改的左值