fud*_*din 2 c operator-precedence
表达式的右侧是先评估还是左侧评估?
void main ()
{
int i = 0 , a[3] ;
a[i] = i++;
printf ("%d",a[i]) ;
}
Run Code Online (Sandbox Code Playgroud)
Jam*_*lis 16
未指定赋值运算符的操作数的评估顺序:可以按任何顺序评估操作数.
但是,此表达式(a[i] = i++)会产生未定义的行为,因为您同时修改i(使用i++)并单独读取i(使用a[i])这些操作之间没有序列点.