0Day Forums
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.