C语言中a[10]是一个int型一维数组为什么*a++不可以但是*a = 1可以呢?

int main()
{

int max = 0;

int a[10] = { 0,7,2,3,4,5,6,7,8,9 };

*a++;//他会报错说++前面要是左值

*a = 7//为什么这个就不报错呢?

}

*a++;报错是因为a是数组名,是不可以改变它本身的值的。这里会先执行a++,会改变a的值,所以会报错。
如果只是想使数组第一个元素值+1,可以写成(*a)++;