Regarding the comma operator, which statement is incorrect? Expressions are eval
ID: 3856131 • Letter: R
Question
Regarding the comma operator, which statement is incorrect?
Expressions are evaluated in order defined by the compiler
Results in the value equal to the value of the first expression in the list
Is used to separate a list of expressions
ANSI C++ Standard specifies that expressions must be evaluated left to right
A)Expressions are evaluated in order defined by the compiler
B)Results in the value equal to the value of the first expression in the list
C)Is used to separate a list of expressions
D)ANSI C++ Standard specifies that expressions must be evaluated left to right
Explanation / Answer
Explanation:
The comma operator is used for two purposes:
Solution:
Option (a) is correct. The expressions are evaluated in order defined by the compiler.
Option (c) is also correct. As explained earlier, comma is used to separate values.In the previous example the three expression x + 1, x - 2 and x + 3 are separated by comma. Therefore it is used to separate list of expression. Hence option (c) is correct.
Option (d) is also correct. The associativity of comma (,) operator is left to right, i.e. the evaluation is started from left in a comma separated list of expression and the right most expression is returned. Hence option (d) is correct.
The option (b) is incorrect. Consider an example..
int x;
x = (x + 1, x - 2, x + 3);
x is assigned to x + 3, as in a comma separated list the value of the right most expression is returned as the value of the comma separated list.
Note that if the above expression is written as:
x = x + 1, x - 2, x + 3;
Then x is assigned with x + 1 as the precedence of '=' operator is greater than that of comma (') operator.
Related Questions
drjack9650@gmail.com
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.