MeshWorld India LogoMeshWorld.
TutorialC4 min read

Assignment operators in C

Listen to ArticleAI Speech
~4 min read narration
100%
Assignment operators in C

A tutorial showing usage of assignment operators in C - language

An assignment operator assigns a value from its right hand side expression, constant, or another variable to its left hand side operand.

The basic assignment operator is equal (=), which simply assigns the value of its right operand into its left operand. That is, x = y which assigns the value of y to x.

There are two kinds of assignment operations:

  • Simple assignment, in which the value of the second operand is stored in the object specified by the first operand.
  • Compound assignment, in which an arithmetic, shift, or bitwise operation is performed prior to storing the result.

For example, consider following C statements for int type.

int a = 12;

Here, 12 an integer value on RHS is stored in variable of integer(int) type a on LHS.

For example, consider following C statements for char type.

char IndianRupeeSymbol = '₹';

Here, '₹' a single character on RHS is stored in variable of char type IndianRupeeSymbol on LHS.

Simple assignment operator

OperatorMeaningExample
=Store the value of the second operand into the first operand.a = b

For example, consider following C statements.

char IndianRupeeSymbol = '₹';
int x = 12;
x = x + 2;

Compound assignment operators

C also has a shorter syntax for carrying out assignment tasks, using operators known as Shorthand Assignment Operators.

OperatorMeaningExample
+=Add the value of the second operand to the value of the first operand; store the result in the first operand.a += b
-=Subtract the value of the second operand from the value of the first operand; store the result in the first operand.a -= b
*=Multiply the value of the first operand by the value of the second operand; store the result in the first operand.a *= b
/=Divide the value of the first operand by the value of the second operand; store the result in the first operand.a /= b
%=Take modulus of the first operand specified by the value of the second operand; store the result in the first operand.a %= b
<<=Shift the value of the first operand left the number of bits specified by the value of the second operand; store the result in the first operand.a <<= b
>>=Shift the value of the first operand right the number of bits specified by the value of the second operand; store the result in the first operand.a >>= b
&=Obtain the bitwise AND of the first and second operands; store the result in the first operand.a &= b
^=Obtain the bitwise exclusive OR of the first and second operands; store the result in the first operand.a ^= b
|=Obtain the bitwise inclusive OR of the first and second operands; store the result in the first operand.a |= b

The expression var = var + 2 is equivalent to var += 2. In fact any expression var = var + x can be also written as var += x;

Working example

/**
 * Short Hand Assignment Operators
 */
#include <stdio.h>
int main()
{
    int a, b;
    printf(" Enter a & b : ");
    scanf("%d %d", &a, &b);

    printf(" Value of a : %d", a);
    printf("\n Value of b : %d", b);

    a += 6;
    printf("\n a += 6 : %d", a);

    a -= 4;
    printf("\n a -= 4 : %d", a);

    a *= b;
    printf("\n a *= b : %d", a);
    printf("\n Value of b : %d", b);

    a /= 3;
    printf("\n a /= 3 : %d", a);

    a %= 2;
    /**
     * We need to escape the % sign with %%
     * As there is no %= format specifier
     */
    printf("\n a %%= 2 : %d", a);

    b += a;
    printf("\n b += a : %d", b);
    printf("\n Value of a : %d", a);
    printf("\n");
    return 0;
}

Note: While displaying the symbol in printf, we need to escape the % sign with %%. As there is no %= format specifier

Reader Quality Feedback

Did this technical guide help solve your problem?

Suggest Errata ($0)
Vishnu
Primary Author

Vishnu

Founder & Principal Architect at MeshWorld. Senior engineer and instructor specializing in AI agent systems, scalable web architecture, and modern development workflows.

Explore Author Archive
Compute Fuel & Open Testbed
100% Independent & Verified

Fuel High-Density, Zero-Fluff Engineering Deep-Dives

Every guide on MeshWorld is validated on physical Linux nodes and reproducible testbeds. If this article saved you hours of debugging or unblocked production, consider funding our next cluster run.

Weekly Dispatch

Join MeshWorld Dispatch

Get practical tutorials, system blueprints, and curated AI engineering notes straight to your inbox. No fluff, zero spam.

Zero spam. 1-click unsubscribe anytime.Prefer RSS?
Curated Continuations

Up Next in This Domain.

Browse Full Archive