Bird
Raised Fist0
Cprogramming~5 mins

Assignment operators in C

Choose your learning style10 modes available
Introduction

Assignment operators let you store values in variables easily. They help update or change values step by step.

When you want to save a number or text in a variable.
When you want to add or subtract a value from a variable quickly.
When you want to multiply or divide a variable by a number and save the result.
When you want to update a variable based on its current value.
Syntax
C
variable = value;
variable += value;
variable -= value;
variable *= value;
variable /= value;
variable %= value;

The = operator assigns a value to a variable.

Operators like += combine assignment with math to update the variable.

Examples
Assign 5 to variable x.
C
int x = 5;
Add 3 to x and save the new value in x.
C
x += 3;  // same as x = x + 3;
Multiply x by 2 and save the result in x.
C
x *= 2;  // same as x = x * 2;
Set x to the remainder when x is divided by 4.
C
x %= 4;  // same as x = x % 4;
Sample Program

This program shows how assignment operators change the value of x step by step.

C
#include <stdio.h>

int main() {
    int x = 10;
    printf("Initial x = %d\n", x);

    x += 5;
    printf("After x += 5: %d\n", x);

    x -= 3;
    printf("After x -= 3: %d\n", x);

    x *= 2;
    printf("After x *= 2: %d\n", x);

    x /= 4;
    printf("After x /= 4: %d\n", x);

    x %= 3;
    printf("After x %%= 3: %d\n", x);

    return 0;
}
OutputSuccess
Important Notes

Remember that /= with integers does division and keeps only the whole number part.

The %= operator works only with integers and gives the remainder.

Summary

Assignment operators store or update values in variables.

They combine math and assignment to make code shorter and clearer.

Common ones include =, +=, -=, *=, /=, and %=.

Practice

(1/5)
1. Which of the following assignment operators adds the right operand to the left operand and then assigns the result to the left operand?
easy
A. -=
B. +=
C. *=
D. /=

Solution

  1. Step 1: Understand the meaning of += operator

    The operator += adds the value on the right to the variable on the left and stores the result back in the left variable.
  2. Step 2: Compare with other operators

    Other operators like -= subtract, *= multiply, and /= divide, so they do not add.
  3. Final Answer:

    += -> Option B
  4. Quick Check:

    += means add and assign [OK]
Hint: Remember '+=' means add then assign to left variable [OK]
Common Mistakes:
  • Confusing '+=' with '=' which just assigns
  • Mixing '+=' with '-=' or '*='
  • Thinking '+=' only adds without assignment
2. Which of the following is the correct syntax using the compound assignment operator to multiply variable x by 5 and assign the result back to x?
easy
A. x = x *5;
B. x =* 5;
C. x = *5;
D. x *= 5;

Solution

  1. Step 1: Identify correct compound assignment syntax

    The correct syntax for multiplying and assigning is 'x *= 5;'. It combines multiplication and assignment.
  2. Step 2: Check other options for syntax errors

    x =* 5; 'x =* 5;' is invalid syntax. x = *5; 'x = *5;' is invalid because '*5' is not a valid expression. x = x *5; 'x = x *5;' is correct but not a compound assignment operator.
  3. Final Answer:

    x *= 5; -> Option D
  4. Quick Check:

    '*=' is multiply and assign operator [OK]
Hint: Use '*=' to multiply and assign in one step [OK]
Common Mistakes:
  • Writing '=*' instead of '*='
  • Forgetting space or semicolon
  • Using 'x = *5;' which is invalid
3. What is the output of the following code?
int a = 10;
a += 5;
a -= 3;
printf("%d", a);
medium
A. 8
B. 15
C. 12
D. 10

Solution

  1. Step 1: Calculate after first operation 'a += 5;'

    Starting with a = 10, adding 5 gives a = 15.
  2. Step 2: Calculate after second operation 'a -= 3;'

    Subtracting 3 from 15 gives a = 12.
  3. Final Answer:

    12 -> Option C
  4. Quick Check:

    10 + 5 - 3 = 12 [OK]
Hint: Apply each operator step-by-step to track value [OK]
Common Mistakes:
  • Adding and subtracting in wrong order
  • Confusing '+=' and '-=' effects
  • Ignoring initial value of variable
4. Identify the error in the following code snippet:
int x = 7;
x +== 3;
printf("%d", x);
medium
A. Syntax error due to '+==' operator
B. Runtime error due to invalid operation
C. No error, output is 10
D. Logical error, output is wrong

Solution

  1. Step 1: Check the operator '+==' in the code

    The operator '+==' does not exist in C. The correct operator for addition assignment is '+='.
  2. Step 2: Understand the effect of invalid operator

    Using '+==' causes a syntax error and the code will not compile.
  3. Final Answer:

    Syntax error due to '+==' operator -> Option A
  4. Quick Check:

    Invalid operator '+==' causes syntax error [OK]
Hint: Use '+=' not '+==' for addition assignment [OK]
Common Mistakes:
  • Typing '+==' instead of '+='
  • Assuming '+==' works like '=='
  • Ignoring compiler error messages
5. Given the code below, what is the final value of result?
int result = 20;
result /= 4;
result *= 3;
result %= 5;
result += 2;
printf("%d", result);
hard
A. 2
B. 3
C. 4
D. 1

Solution

  1. Step 1: Perform division assignment 'result /= 4;'

    Starting with result = 20, dividing by 4 gives result = 5.
  2. Step 2: Perform multiplication assignment 'result *= 3;'

    Multiplying 5 by 3 gives result = 15.
  3. Step 3: Perform modulus assignment 'result %= 5;'

    15 modulo 5 is 0, so result = 0.
  4. Step 4: Perform addition assignment 'result += 2;'

    Adding 2 to 0 gives result = 2.
  5. Final Answer:

    2 -> Option A
  6. Quick Check:

    20/4=5, 5*3=15, 15%5=0, 0+2=2 [OK]
Hint: Apply each operator in order carefully [OK]
Common Mistakes:
  • Skipping modulus step or calculating it wrong
  • Mixing up order of operations
  • Forgetting that %= gives remainder
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard