Examveda
Examveda

What will be the value of i and j after execution of following program?
#include<stdio.h>
void main()
{
	int i, j;
	for(i=0,j=0;i<10,j<20;i++,j++){
		printf("i=%d %t j=%d", i, j);
       }
}

A. 10 10

B. 10 20

C. 20 20

D. Run time error

Answer: Option C

Solution(By Examveda Team)

comma operator is executed from left to right so until j<20 for loop statement is true, so both i and j are incremented.
So, i = 20 and j = 20.

Join The Discussion

Comments ( 6 )

  1. Sudheer Sudheer
    Sudheer Sudheer :
    7 months ago

    When we use The Comma Operator compiler will choose the right most value....(Associativity is Left to Right)....So though when i=10 the condition in the for loop i

  2. Sudheer Sudheer
    Sudheer Sudheer :
    7 months ago

    when i=20 and j=20 the condition becomes file... when i run this snippet in my editor , it gave me i=19 and j=19 ...So the answer D is incorrect in my opinion.

  3. Shiva Gupta
    Shiva Gupta :
    10 months ago

    What would be value of j after the following is executed? k=17; j=6; if (k < 10) j=8; j=j+1; j=j+2;

  4. Sanchita Akole
    Sanchita Akole :
    2 years ago

    Please Explain comma operator concept

  5. Rohit More
    Rohit More :
    2 years ago

    Comma operator executed left to right is correct.

  6. Abhijeet Chimankar
    Abhijeet Chimankar :
    5 years ago

    comma operator is executed from left to right so until j

Related Questions on Control Structures