Ternary operator and Sequence Points in C - Printable Version +- 0Day Forums (https://zeroday.vip) +-- Forum: Coding (https://zeroday.vip/Forum-Coding) +--- Forum: C & C++ (https://zeroday.vip/Forum-C-C) +--- Thread: Ternary operator and Sequence Points in C (/Thread-Ternary-operator-and-Sequence-Points-in-C) |
Ternary operator and Sequence Points in C - rafaeliawuefitjpu - 07-27-2023 I've an expression of the form shown below :- while (count) { ... ... index = ((count == 20)? 0 : index++); ... ... } Now Ternary operators are sequence points in C but I believe that the sequence point ends at the test part. Is this understanding correct and as such will this statement lead to undefined behaviour ? RE: Ternary operator and Sequence Points in C - infusoriantumpetab - 07-27-2023 Right. There's a sequence point after the evaluation of the condition, but the next sequence point is the semicolon terminating the statement. So whenever `count != 20`, you have the undefined behaviour index = index++; since `index` is modified twice without intervening sequence point. |