Does the ?: (ternary operator) return a lvalue? How can I assign a value to the output of the ternary operator?
No, it does not return an "lvalue"
Try doing something like this if you want to assign a value to the output of this operator
*((mycondition) ? &var1 : &var2) = myexpression;