Assignment operators are used to assigning the result of an expression to a variable. Up to now, we have used the shorthand assignment operator “=”, which assigns the result of a right-hand expression to the left-hand variable. For example, in the expression x = y + z, the sum of y and z is assigned to x.
Another form of assignment operator is variable operator_symbol= expression; which is equivalent to variable = variable operator_symbol expression;
We have the following different types of assignment and assignment short-hand operators.
Expression with an assignment operator | Detailed expression with an assignment operator |
---|---|
x += y; | x = x + y; |
x -= y; | x = x – y; |
x /= y; | x = x / y; |
x *= y; | x = x * y; |
x %= y; | x = x % y; |
x &= y; | x = x & y; |
x |= y; | x = x | y; |
x ^= y; | x = x ^ y; |
x >>= y; | x = x >> y; |
x <<= y; | x = x << y; |
Examples:
// assignment operators
#include <stdio.h>
int main(){
int x = 10, y = 15, z = 2, a = 1;
printf("Value of x before operation is %d\n", x);
x += 30;
printf("Value of x after x += 30 is %d\n", x);
printf("Value of y before operation is %d\n", y);
y /= z;
printf("Value of y after y /= z is %d\n", y);
printf("Value of z before operation is %d\n", z);
z |= a;
printf("Value of z after z += a is %d\n", z);
// analyze the output of bitwise operator
return 0;
}
Expected Output:
Value of x before operation is 10
Value of x after x += 30 is 40
Value of y before operation is 15
Value of y after y /= z is 7
Value of z before operation is 2
Value of z after z += a is 3