# Assignment Operator in C and C++ - Arithmetic Assignment, Compound Assignment

## Assignment Operator in C and C++

All C programs are valid C++ programs. Hence, Assignment operators in C are valid in C++.

Assignment Operator in C programming is used to assigning a value to the variable. This is called a simple assignment operator. The arithmetic and any other operator would not be useful without an assignment operator. The assignment operator takes the value on the right-hand side and puts it into the variable on the left-hand side.

## Assignment Operator in C and C++ - Syntax

```		variable-name = value;
```

## Assignment Operator in C and C++ - Examples

```int x=10;
float y=20;
String s="hello";
char gender='M';
int a;
a=20;
```

## Compound Assignment Operators in C and C++

Sometimes, the left-hand-side variable is repeated immediately on the right side of the expression. For example, x = x + y. These types of expressions can also be written in compressed form, that is x += y. This kind of (+=) operator is called a compound assignment operator. Compound assignment operators are used as shown below:

Operators  DescriptionExample  Meaning
+=Addition and Assignment operators. It adds the value of A and B and assigns the result to A.x += y x = x + y
- =Subtraction and Assignment operators. It subtracts the value of B from A and assigns the result to A. x -= y x = x - y
* =Multiplication and Assignment operators. It multiplies the value of A and B and assigns the result to A. x *= yx = x * y
/=Division and Assignment operators. It divides the value of A by B and assigns the result to A. x /= y x = x / y
%=Modulus and Assignment operators. It divides the value of A by B and stores the remainter to A.x %= y x = x%y
&=Bitwise AND and Assignment operators. It performs the bitwise AND with A and B and assigns the result to A. x &= y x = x & y
|=Bitwise OR and Assignment operators. It performs the bitwise OR with A and B and assigns the result to A.x |= y x = x | y
^=Bitwise XOR and Assignment operators. It performs the bitwise XOR with A and B and assigns the result to A. x ^= y x = x ^ y
>>=Bitwise Right Shift and Assignment operators. It performs the bitwise right shift with A and assigns the result to A. x >>= y x = x >> y
<<=Bitwise Left Shift and Assignment operators. It performs the bitwise left shift with A and assigns the result to A. x <<= y x = x << y
Operators  DescriptionExample  Meaning
+=Addition and Assignment operators. It adds the value of A and B and assigns the result to A.x += y x = x + y
- =Subtraction and Assignment operators. It subtracts the value of B from A and assigns the result to A. x -= y x = x - y
* =Multiplication and Assignment operators. It multiplies the value of A and B and assigns the result to A. x *= yx = x * y
/=Division and Assignment operators. It divides the value of A by B and assigns the result to A. x /= y x = x / y
%=Modulus and Assignment operators. It divides the value of A by B and stores the remainter to A.x %= y x = x%y
&=Bitwise AND and Assignment operators. It performs the bitwise AND with A and B and assigns the result to A. x &= y x = x & y
|=Bitwise OR and Assignment operators. It performs the bitwise OR with A and B and assigns the result to A.x |= y x = x | y
^=Bitwise XOR and Assignment operators. It performs the bitwise XOR with A and B and assigns the result to A. x ^= y x = x ^ y
>>=Bitwise Right Shift and Assignment operators. It performs the bitwise right shift with A and assigns the result to A. x >>= y x = x >> y
<<=Bitwise Left Shift and Assignment operators. It performs the bitwise left shift with A and assigns the result to A. x <<= y x = x << y

### Assigning Same value to Multiple Variables

There is also possible to assign a single value to multiple variables. This kind of assignment is called nested assignment or multiple assignments.

## Assignment Operator Syntax

```    variable 1 = variable 2 = variable 3.......variable N = single value;
```

## Assignment Operator - Example

```   x = y = z = 10;
a = b = k =(x+y+z);
```

## Assignment Operator - Complete Example Program

Following is an example C Program using Assignment Operators.

```#include <stdio.h>

int main()
{
/* Simple Assignment*/
int a,k;
int b,j;
float c=30.0;
float d=5.0;

/*Nested or Multiple Assignment */
a = k = 5;
b = j = 3;

/*Compound Assignment*/
a += b;
printf("After Add and Assign :%d \n",a);

k -= j;
printf("After Subtract and Assign :%d \n",k);

a *= b;
printf("After Multiple and Assign :%d \n",a);

c /= d;
printf("After Divide and Assign :%f \n",c);

j %= k;
printf("After Modulo and Assign :%d \n",j);

j &= k;
printf("After Bitwise And and Assign :%d \n",j);

j |= k;
printf("After Bitwise OR and Assign :%d \n",j);

a ^= b;
printf("After Bitwise XOR and Assign :%d \n",a);

a <<= 2;
printf ("After Bitwise Left Shift and Assign :%d \n",a);

a >>= 3;
printf ("After Bitwise Right Shift and Assign :%d \n",a);
return(0);
}
```

### Output

```After Add and Assign :8
After Subtract and Assign :2
After Multiple and Assign :24
After Divide and Assign :6.000000
After Modulo and Assign :1
After Bitwise And and Assign :0
After Bitwise OR and Assign :2
After Bitwise XOR and Assign :27
After Bitwise Left Shift and Assign :108
After Bitwise Right Shift and Assign :13
```

# Assignment Operator in C and C++ - Arithmetic Assignment, Compound Assignment

## Assignment Operator in C and C++

All C programs are valid C++ programs. Hence, Assignment operators in C are valid in C++.

Assignment Operator in C programming is used to assigning a value to the variable. This is called a simple assignment operator. The arithmetic and any other operator would not be useful without an assignment operator. The assignment operator takes the value on the right-hand side and puts it into the variable on the left-hand side.

## Assignment Operator in C and C++ - Syntax

```		variable-name = value;
```

## Assignment Operator in C and C++ - Examples

```int x=10;
float y=20;
String s="hello";
char gender='M';
int a;
a=20;
```

## Compound Assignment Operators in C and C++

Sometimes, the left-hand-side variable is repeated immediately on the right side of the expression. For example, x = x + y. These types of expressions can also be written in compressed form, that is x += y. This kind of (+=) operator is called a compound assignment operator. Compound assignment operators are used as shown below:

Operators  DescriptionExample  Meaning
+=Addition and Assignment operators. It adds the value of A and B and assigns the result to A.x += y x = x + y
- =Subtraction and Assignment operators. It subtracts the value of B from A and assigns the result to A. x -= y x = x - y
* =Multiplication and Assignment operators. It multiplies the value of A and B and assigns the result to A. x *= yx = x * y
/=Division and Assignment operators. It divides the value of A by B and assigns the result to A. x /= y x = x / y
%=Modulus and Assignment operators. It divides the value of A by B and stores the remainter to A.x %= y x = x%y
&=Bitwise AND and Assignment operators. It performs the bitwise AND with A and B and assigns the result to A. x &= y x = x & y
|=Bitwise OR and Assignment operators. It performs the bitwise OR with A and B and assigns the result to A.x |= y x = x | y
^=Bitwise XOR and Assignment operators. It performs the bitwise XOR with A and B and assigns the result to A. x ^= y x = x ^ y
>>=Bitwise Right Shift and Assignment operators. It performs the bitwise right shift with A and assigns the result to A. x >>= y x = x >> y
<<=Bitwise Left Shift and Assignment operators. It performs the bitwise left shift with A and assigns the result to A. x <<= y x = x << y
Operators  DescriptionExample  Meaning
+=Addition and Assignment operators. It adds the value of A and B and assigns the result to A.x += y x = x + y
- =Subtraction and Assignment operators. It subtracts the value of B from A and assigns the result to A. x -= y x = x - y
* =Multiplication and Assignment operators. It multiplies the value of A and B and assigns the result to A. x *= yx = x * y
/=Division and Assignment operators. It divides the value of A by B and assigns the result to A. x /= y x = x / y
%=Modulus and Assignment operators. It divides the value of A by B and stores the remainter to A.x %= y x = x%y
&=Bitwise AND and Assignment operators. It performs the bitwise AND with A and B and assigns the result to A. x &= y x = x & y
|=Bitwise OR and Assignment operators. It performs the bitwise OR with A and B and assigns the result to A.x |= y x = x | y
^=Bitwise XOR and Assignment operators. It performs the bitwise XOR with A and B and assigns the result to A. x ^= y x = x ^ y
>>=Bitwise Right Shift and Assignment operators. It performs the bitwise right shift with A and assigns the result to A. x >>= y x = x >> y
<<=Bitwise Left Shift and Assignment operators. It performs the bitwise left shift with A and assigns the result to A. x <<= y x = x << y

### Assigning Same value to Multiple Variables

There is also possible to assign a single value to multiple variables. This kind of assignment is called nested assignment or multiple assignments.

## Assignment Operator Syntax

```    variable 1 = variable 2 = variable 3.......variable N = single value;
```

## Assignment Operator - Example

```   x = y = z = 10;
a = b = k =(x+y+z);
```

## Assignment Operator - Complete Example Program

Following is an example C Program using Assignment Operators.

```#include <stdio.h>

int main()
{
/* Simple Assignment*/
int a,k;
int b,j;
float c=30.0;
float d=5.0;

/*Nested or Multiple Assignment */
a = k = 5;
b = j = 3;

/*Compound Assignment*/
a += b;
printf("After Add and Assign :%d \n",a);

k -= j;
printf("After Subtract and Assign :%d \n",k);

a *= b;
printf("After Multiple and Assign :%d \n",a);

c /= d;
printf("After Divide and Assign :%f \n",c);

j %= k;
printf("After Modulo and Assign :%d \n",j);

j &= k;
printf("After Bitwise And and Assign :%d \n",j);

j |= k;
printf("After Bitwise OR and Assign :%d \n",j);

a ^= b;
printf("After Bitwise XOR and Assign :%d \n",a);

a <<= 2;
printf ("After Bitwise Left Shift and Assign :%d \n",a);

a >>= 3;
printf ("After Bitwise Right Shift and Assign :%d \n",a);
return(0);
}
```

### Output

```After Add and Assign :8
After Subtract and Assign :2
After Multiple and Assign :24
After Divide and Assign :6.000000
After Modulo and Assign :1
After Bitwise And and Assign :0
After Bitwise OR and Assign :2
After Bitwise XOR and Assign :27
After Bitwise Left Shift and Assign :108
After Bitwise Right Shift and Assign :13
```