# Assignment Operators

Here, we see the different ways in which a variable can be assigned values.
There are following assignment operators supported by C language:

OperatorsWhat They Do ..Meaning
=Assigns values to variables.a=b
+=Assigns a value incremented by some value.a=a+b
-=Assigns a value decremented by some value.a=a-b
*=Assigns a value multiplied by some value.a=a*b
/=Assigns a value divided by some value.a=a/b
%=Assigns a value got by taking by some value.a=a%b
<<=Assigns a value got by shifting some bits to left.a=a<
>>=Assigns a value got by shifting some bits to left.a=a>>b
&= Performs the AND operation on corresponding bits of values.a=a&b
|=Performs the OR operation on corresponding bits of values.a=a|b
^=Performs the XOR operation on corresponding bits of values.a=a^b

### Simple Assignment

There are two ways as shown :
1. During declaration
2. Later in the program

### Syntax for Simple Assignment:

`[variable]=[variable\constant]`

#### Example:

```#include< stdio.h>

int main()

{

int a=10,b;

b=20;

printf("Assignment During Declaration  a=%d ",a);

printf("\nAssignment After Declaration b=%d ",b);

return 0;

}

```

This will produce following output:
```Assignment During Declaration a=10

Assignment After Declaration  b=20

```

### Compound Assignment Operators

AS SHOWN , these use a combination of assignment operator and either arithmetic or bitwise operators.

### Syntax for Compound Assignment :

`[variable][operators]=[variable\constant]`

### C Example

```#include<stdio.h>

int main() {

int a=1,b=2,c=3,d=4,e=6,f=5;

printf("\n a becomes %d , b becomes  %d , c becomes  %d ,d becomes  %d ,e becomes  %d , f becomes  %d",a,b,c,d,e,f);

a+=b;

c-=b;

d*=b;

e/=b;

f%=b;

printf("\na becomes %d , b becomes  %d , c becomes  %d ,d becomes  %d ,e becomes  %d , f becomes  %d",a,b,c,d,e,f);

a&=b;

c|=b;

d^=b;

e<<=b;

f>>=b;

printf("\na becomes %d , b becomes  %d , c becomes  %d ,d becomes  %d ,e becomes  %d , f becomes  %d",a,b,c,d,e,f);

return 0;

}

```