首先看这里有三个变量,即w,i,n,下面是这句的解释:
1、i减去1所得的值;
2、判断1所得结果,即i-1是否等于-1?
3、若2等于-1,则w=n-1;若2不等于-1,则w=i-1;
其实这句只要理解C的语法"?:"就ok了,就是一个判断然后分情况执行的意思,你把它当成if...else...语法就ok。
你看下运算符的优先级,就明白了。
这里先判断i-1是否等于-1,如果相等,则w的值为n-1,否则为i-1
if(i - 1 == - 1) w = n-1;
else w = i -1;
w=(i-1==-1)?n-1:i-1
如果i-1==-1为真;则把?右边的n-1赋给w,
为假;则把:右边的i-1赋给w