一个关于c语言三目运算符的问题

 ###### 问题遇到的现象和发生背景

 ###### 问题相关代码,请勿粘贴截图

AA是一个全局数组变量

 ###### 运行结果及报错内容
三目运算符那行报错,显示必须是可以修改的左值
 ###### 我的解答思路和尝试过的方法
上下的效果一样,但是我很奇怪为什么下面三目运算符

```c
void AA_Config(uint8_t aa_num,uint8_t state)
{
if(state)
AA[aa_num]=1;
else
AA[aa_num]=0;

state ? AA[aa_num]=1 : AA[aa_num]=0;
}

```那行会报错
 ###### 我想要达到的结果

用三目运算符赋值的正确写法是这样的
AA[aa_num] = state ? 1 : 0;

AA[aa_num]=state ?1 :0;