C语言 设有数组a的定义:

来源:百度知道 编辑:UC知道 时间:2024/06/04 03:57:15
设有数组a的定义:
int a[]={1,2,3,4};
语句:
a[3]=--a[0]?a[1]++:a[2]++;
执行后,数组a的各元素依次为
答案是:0,2,4,3 为什么啊?

首先执行--a[0],所以a[0]=0;
然后因为a[0]=0 ,所以a[1]++这个不执行a[1]=2,执行a[2]++,
但由于++在后面,所以先执行a[3]=a[2],a[3]=3,最后算a[2]++,
所以a[2]=4,,,

a[0]=1所以--a[0]=0,即条件语句的条件为false,所以相当于a[3]=a[2]++;也就是先把a[2]赋值给a[3],然后再自加1,即a[3]=a[2]=3
a[2]=a[2]+1=4,所以就是上面的结果了,计算的时候注意前自加和后自加的区别