Purchase Solution

Evaluating C expressions: left to right and right to left

Not what you're looking for?

Ask Custom Question

Let the function fun be defined as

int fun(int *k) {
*k += 4;
return 3 * (*k) - 1;
}

Suppose fun is used in a program as follows
void main() {
int I = 10, j = 10, sum1, sum2;
sum1 = (I / 2) + fun(&i);
sum2 - fun(&j) + (j / 2);
}

What are the values of sum1 and sum2

a. if the operands in the expressions are evaluated left to right?
b. If the operands in the expressions are evaluated right to left?

Purchase this Solution

Solution Summary

We use the following example to clarify how C expressions are evaluated from left to right and from right to left.

int fun(int *k) {
*k += 4;
return 3 * (*k) - 1;
}
void main() {
int I = 10, j = 10, sum1, sum2;
sum1 = (I / 2) + fun(&i);
sum2 - fun(&j) + (j / 2);
}

Solution Preview

a. sum1 = 46, sum2 = 48
sum1 = (10/2) + fun(&I);
fun(10)=>
I+=4 => I = 14
return 3*(14) -1 => return 41;

sum1 = (10/2) + 41 => sum1 = 46;

sum2 ...

Purchase this Solution


Free BrainMass Quizzes
Basic Computer Terms

We use many basic terms like bit, pixel in our usual conversations about computers. Are we aware of what these mean? This little quiz is an attempt towards discovering that.

Basic Networking Questions

This quiz consists of some basic networking questions.

C# variables and classes

This quiz contains questions about C# classes and variables.

C++ Operators

This quiz tests a student's knowledge about C++ operators.

Java loops

This quiz checks your knowledge of for and while loops in Java. For and while loops are essential building blocks for all Java programs. Having a solid understanding of these constructs is critical for success in programming Java.