Home » C Programming » C Preprocessor

What will be the output of the program? #include #define CUBE(x) (x*x*x) int main() { int a, b=3; a = CUBE(b++); printf("%d, %d\n", a, b); return 0; }

Correct Answer: 27, 6

Explanation:

The macro function CUBE(x) (x*x*x) calculates the cubic value of given number(Eg: 103.)


Step 1: int a, b=3; The variable a and b are declared as an integer type and varaible b id initialized to 3.


Step 2: a = CUBE(b++); becomes


=> a = b++ * b++ * b++;


=> a = 3 * 3 * 3; Here we are using post-increement operator, so the 3 is not incremented in this statement.


=> a = 27; Here, 27 is store in the variable a. By the way, the value of variable b is incremented by 3. (ie: b=6)


Step 3: printf("%d, %d\n", a, b); It prints the value of variable a and b.


Hence the output of the program is 27, 6.


← Previous Question Next Question→

More Questions from C Preprocessor

Discussion & Comments

No comments yet. Be the first to comment!
Join Discussion