a=l1?l1->val:0+l2?l2->val:0+carry;
这段代码是错的,l1为真,然后表达式值为l1->val,而由于+的优先级高于?:所以0+l2?l2->val:0看做整体,导致没有得到最终的答案。
即为:
代码编译后为: a=(l1?l1->val:(0+l2?l2->val:0)+carry);
a=l1?l1->val:0+l2?l2->val:0+carry;
这段代码是错的,l1为真,然后表达式值为l1->val,而由于+的优先级高于?:所以0+l2?l2->val:0看做整体,导致没有得到最终的答案。
即为:
代码编译后为: a=(l1?l1->val:(0+l2?l2->val:0)+carry);