Chapter 4: Basic C Operators
In this chapter, you will learn about:
Arithmetic operators
Unary operators
Binary operators
Assignment operators
Equalities and relational operators
Logical operators
Conditional operator
Principles of Progra
Arithmetic Operators I
In C, we have the following operators (note
that all these example are using 9 as the
value of its first operand)
Principles of Progra
Arithmetic Operators II
There are 2 types of arithmetic operators
in C:
unary operators
operators that require only one operand.
binary operators.
operators that require two operands.
Principles of Progra
Unary Operator
C Operation
Positive
Negative
Increment
Decrement
Operator
+
++
--
Example
a = +3
b = -a
i++
i--
The first assigns positive 3 to a
The second assigns the negative value of a to b.
i++ is equivalent to i = i + 1
i-- is equivalent to i = i-1
Principles of Progra
PRE- / POST-Increment
It is also possible to use ++i and --i instead of
i++ and i-However, the two forms have a slightly yet
important difference.
Consider this example:
int a = 9;
printf(%d\n, a++);
printf(%d, a);
The output would be:
9
10
Principles of Progra
PRE- / POST-Increment cont
But if we have:
int a = 9;
printf(%d\n, ++a);
printf(%d, a);
The output would be:
10
10
a++ would return the current value of a and
then increment the value of a
++a on the other hand increment the value of
a before returning the value
Principles of Progra
The following table illustrates the difference between the prefix and
postfix modes of the increment and decrement operator.
int R = 10,
count=10;
++ Or -Statement
R = count++;
Equivalent
Statements
R = count;
count = count + 1
R value
Count
value
10
11
R = ++count;
count = count + 1;
R = count;
11
11
R = count --;
R = count;
count = count 1;
10
R = --count;
Count = count 1;
R = count;
Principles of Progra
Binary Operators
C Operation
Addition
Subtraction
Multiplication
Division
Modulus
Operator
+
*
/
%
Example:
a+3
a-6
a*b
a/c
a%x
The division of variables of type int will always
produce a variable of type int as the result.
You could only use modulus (%) operation
on int variables.
Principles of Progra
Assignment Operators
Assignment operators are used to combine the
'=' operator with one of the binary arithmetic
operators
In the following slide, All operations starting from
c=9
Operator
Example
Equivalent
Statement
Results
+=
-=
c += 7
c -= 8
c=c+7
c=c8
c = 16
c=1
*=
/=
%=
c *= 10
c /= 5
c %= 5
c = c * 10
c=c/5
c=c%5
c = 90
c=1
c=4
Principles of Progra
Precedence Rules
Precedence rules come into play when there is a mixed
of arithmetic operators in one statement. For example:
x = 3 * a - ++b%3;
The rules specify which of the operators will be
evaluated first.
Precedence
Level
1 (highest)
2
3
4
5 (lowest)
Principles of Progra
Operator
()
unary
* / %
+ = += -= *= /= %=
Associativity
left to right
right to left
left to right
left to right
right to left
10
Precedence Rules cont
For example: x = 3 * a - ++b % 3;
how would this statement be evaluated?
If we intend to have the statement evaluated
differently from the way specified by the
precedence rules, we need to specify it using
parentheses ( )
Using parenthesis, we will have
x = 3 * ((a - ++b)%3);
The expression inside a parentheses will be
evaluated first.
The inner parentheses will be evaluated
earlier compared to the outer parentheses.
Principles of Progra
11
Equality and Relational
Operators
Equality Operators:
Operator
==
!=
Example
x == y
x != y
Meaning
x is equal to y
x is not equal to y
Relational Operators:
Operator
>
<
>=
<=
Principles of Progra
Example
x>y
x<y
x >= y
x <= y
Meaning
x is greater than y
x is less than y
x is greater than or equal to y
x is less than or equal to y
12
Logical Operators
Logical operators are useful when we want to test
multiple conditions.
There are 3 types of logical operators and they
work the same way as the boolean AND, OR and
NOT operators.
&& - Logical AND
All the conditions must be true for the whole
expression to be true.
Example: if (a == 10 && b == 9 && d == 1)
means the if statement is only true when a ==
10 and b == 9 and d == 1.
Principles of Progra
13
Logical Operators cont
|| - Logical OR
The truth of one condition is enough to make
the whole expression true.
Example: if (a == 10 || b == 9 || d == 1)
means the if statement is true when either
one of a, b or d has the right value.
! - Logical NOT (also called logical negation)
Reverse the meaning of a condition
Example: if (!(points > 90))
means if points not bigger than 90.
Principles of Progra
14
Conditional Operator
The conditional operator (?:) is used to
simplify an if/else statement.
Syntax:
Condition ? Expression1 : Expression2
The statement above is equivalent to:
if (Condition)
Expression1
else
Expression2
Principles of Progra
15
Conditional Operator cont
Example 1:
if/else statement:
if (total > 60)
grade = P
else
grade = F;
conditional statement:
total > 60 ? grade = P: grade = F;
OR
grade = total > 60 ? P: F;
Principles of Progra
16
Conditional Operator cont
Example 2:
if/else statement:
if (total > 60)
printf(Passed!!\n);
else
printf(Failed!!\n);
Conditional Statement:
printf(%s!!\n, total > 60? Passed: Failed);
Principles of Progra
17
SUMMARY
This chapter exposed you the operators used
in C
Arithmetic operators
Assignment operators
Equalities and relational operators
Logical operators
Conditional operator
Precedence levels come into play when there
is a mixed of arithmetic operators in one
statement.
Pre/post fix - effects the result of statement
Principles of Progra
18