Advertisement
Tech

C Programming: Integer Expressions and Precedence of Operators

In this article, we discuss how integer expressions are formed using “arithmetic operators”. We also explain how expressions are evaluated based on “operator precedence”.

By Noel Kalicharan
Desk Tech
Reading time 4 min read
Word count 752
Linux Computing Linux commands
C Programming: Integer Expressions and Precedence of Operators
Advertisement
Quick Take

In this article, we discuss how integer expressions are formed using “arithmetic operators”. We also explain how expressions are evaluated based on “operator precedence”.

On this page

Integer expressions

In C programming, an integer constant (e.g. 23, 0, -245) is the simplest example of an integer expression. However, most of the time, we write integer expressions by combining constants and variables with the following arithmetic operators:

  • add

- subtract

Advertisement

* multiply

/ divide

Advertisement

% find remainder

For example, suppose we have the following declaration:

Advertisement

int a, b, c;

then the following are all valid expressions:

Advertisement

a + 39

a + b - c * 2

Advertisement

b % 10 //the remainder when b is divided by 10

c + (a * 2 + b * 2) / 2

Advertisement

The operators +, - and * all give the expected results. However, / performs integer division; if there is any remainder, it is thrown away. We say integer division truncates. Thus 19 / 5 gives the value 3; the remainder 4 is discarded.

But what is the value of -19 / 5? The answer here is –3. The rule is that, in C, integer division truncates towards zero. Since the exact value of –19 ÷ 5 is –3.8, truncating towards zero gives –3.

Advertisement

The % operator gives the remainder when one integer is divided by another; for example,

19 % 5 evaluates to 4;

Advertisement

j % 7 gives the remainder when j is divided by 7;

You can use it to test, for instance, if a number j is even or odd. If j % 2 is 0 then j is even; if j % 2 is 1, j is odd.

Advertisement

Precedence of operators

C evaluates an expression based on the usual precedence of operators: multiplication and division are done before addition and subtraction. We say that multiplication and division have higher precedence than addition and subtraction. For example, the expression

5 + 3 * 4

Advertisement

is evaluated by first multiplying 3 by 4 (giving 12) and then adding 5 to 12, giving 17 as the value of the expression.

As usual, we can use brackets to force the evaluation of an expression in the order we want. For example,

Advertisement

(5 + 3) * 4

first adds 5 and 3 (giving 8), and then multiplies 8 by 4, giving 32.

Advertisement

When two operators which have the same precedence appear in an expression, they are evaluated from left to right, unless specified otherwise by brackets. For example,

24 / 4 * 2

Advertisement

is evaluated as

(24 / 4) * 2

(giving 12) and

12 - 7 + 3

is evaluated as

(12 - 7) + 3

giving 8. However,

24 / (4 * 2)

is evaluated with the multiplication done first, giving 3, and

12 - (7 + 3)

is evaluated with the addition done first, giving 2.

In C, the remainder operator % has the same precedence as multiplication (*) and division (/).

Exercise: What is printed by the following program? Verify your answer by typing and running the program. Note: use greater than and less than signs to properly enclose ‘stdio.h’ instead of parantheses.

#include (stdio.h) main() { int a = 15: int b = 24; printf("%d %d\n", b - a + 7,b - (a + 7)); printf("%d %d\n", b - a - 4, b - (a - 4)); printf("%d %d\n", b % a / 2, b % (a / 2)); printf("%d %d\n", b * a / 2, b * (a / 2)); printf("%d %d\n", b / 2 * a, b / (2 * a)); } }

References

C Programming – A Beginner’s Course

Related programming references

This post is part of the series: C Programming for Beginners

A straightforward introduction to Programming in C for people with no previous programing experience.

  1. C Programming For Beginners - Part 1
  2. C Programming For Beginners - Part 2
  3. C Programming for Beginners – Part 3
  4. C Programming for Beginners – Part 4
  5. C Programming For Beginners - Part 5
  6. C Programming For Beginners - Part 6
  7. C Programming For Beginners - Data Types
  8. C Programming For Beginners - Part 8
  9. C Programming For Beginners - Part 9
  10. C Programming For Beginners - Part 10
  11. C Programming For Beginners - Part 11
  12. C Programming For Beginners - Part 12
  13. C Programming For Beginners - Part 13
  14. C Programming For Beginners - Part 14
  15. C Programming For Beginners - Integer Data Types
  16. C Programming for Beginners - Part 16
  17. C Programming For Beginners - Integer Expressions, Operators and Precedence
  18. C Programming For Beginners - Part 18
  19. C Programming For Beginners - Printing Double and Float
  20. C Programming For Beginners - Mixing double, float and int
Keep Exploring

More from Tech

Filed under
Linux Computing
More topics
Linux commands
Advertisement