Home » C programming language

How expression a=b=c (Multiple Assignment) evaluates in C programming?

Since C language does not support chaining assignment like a=b=c; each assignment operator (=) operates on two operands only. Then how expression a=b=c evaluates?

According to operators associativity assignment operator (=) operates from right to left, that means associativity of assignment operator (=) is right to left.

Expression a=b=c is actually a=(b=c), see how expression a=(b=c) evaluates?

  • Value of variable c will be assigned into variable b first.
  • Then value of variable b will be assigned into variable a.

Finally value of variables a and b will be same as the value of variable c.

Consider the following program

#include <stdio.h>
int main(){
	int a,b,c;
	a=0; b=0; c=100;
	
	printf("Before Multiple Assignent a=%d,b=%d,c=%d\n",a,b,c);
	
	//Multiple Assignent
	a=b=c;
	printf("After Multiple Assignent a=%d,b=%d,c=%d\n",a,b,c);
	
	return 0;	
}

Output

Before Multiple Assignent a=0,b=0,c=100 
After Multiple Assignent a=100,b=100,c=100

Assigning a value to multiple variables of same type

By using such kind of expression we can easily assign a value to multiple variables of same data type, for example - if we want to assign 0 to integer variables a, b, c and d; we can do it by following expression:

a=b=c=d=0;

Consider the following program

#include <stdio.h>
int main(){
	int a,b,c,d;
	
	a=b=c=d=0;
	printf("a=%d, b=%d, c=%d, d=%d\n",a,b,c,d);
	
	return 0;	
}

Output

a=0, b=0, c=0, d=0





Comments and Discussions

Ad: Are you a blogger? Join our Blogging forum.
Learn PCB Designing: PCB DESIGNING TUTORIAL







Languages: » C » C++ » C++ STL » Java » Data Structure » C#.Net » Android » Kotlin » SQL
Web Technologies: » PHP » Python » JavaScript » CSS » Ajax » Node.js » Web programming/HTML
Solved programs: » C » C++ » DS » Java » C#
Aptitude que. & ans.: » C » C++ » Java » DBMS
Interview que. & ans.: » C » Embedded C » Java » SEO » HR
CS Subjects: » CS Basics » O.S. » Networks » DBMS » Embedded Systems » Cloud Computing » Machine learning » CS Organizations » Linux » DOS
More: » Articles » Puzzles » News/Updates

© https://www.includehelp.com some rights reserved.