expression and operartor in c programming

33
ELEMENTS OF PROGRAM STATEMENTS OPERATORS PRECEDENCE & ASSOCIATIVITY Expression and Operators Compiled By: Kamal Acharya

Upload: kamal-acharya

Post on 06-May-2015

333 views

Category:

Education


0 download

DESCRIPTION

This slide contain the introduction to the various operators and the expression available in C Programming Language.

TRANSCRIPT

Page 1: Expression and Operartor In C Programming

Compiled By: Kamal Acharya

ELEMENTS OF PROGRAMSTATEMENTSOPERATORSPRECEDENCE & ASSOCIATIVITY

Expression and Operators

Page 2: Expression and Operartor In C Programming

Compiled By: Kamal Acharya

Elements of a program

Literals fixed data written into a programVariables & constants placeholders (in memory)

for pieces of data Types sets of possible values for dataExpressions combinations of operands (such as

variables or even "smaller" expressions) and operators. They compute new values from old ones.

Assignments used to store values into variablesStatements "instructions". In C, any expression

followed by a semicolon is a statement

Page 3: Expression and Operartor In C Programming

Compiled By: Kamal Acharya

Elements of a program

Control-flow constructs constructs that allow statements or groups of statements to be executed only when certain conditions hold or to be executed more than once.

Functions named blocks of statements that perform a well-defined operation.

Libraries collections of functions.

Page 4: Expression and Operartor In C Programming

Compiled By: Kamal Acharya

Statement

Statements are elements in a program which (usually) ended up with semi-colon (;) e.g. below is a variables declaration statement

int a, b, c;

• Preprocessor directives (i.e. #include and define) are not statements. They don’t use semi-colon

Page 5: Expression and Operartor In C Programming

Compiled By: Kamal Acharya

An expression statement is a statement that results a value

Some examples of expression Value

• Literal expression e.g. 2, “A+”, ‘B’

The literal itself

• Variable expression e.g. Variable1

• arithmetic expression e.g. 2 + 3 -1

The content of the variable

The result of the operation

Page 6: Expression and Operartor In C Programming

Compiled By: Kamal Acharya

Operators

Operators can be classified according to the type of their operands and of their output

Arithmetic Relational Logical Bitwise

the number of their operands Unary (one operand) Binary (two operands)

Page 7: Expression and Operartor In C Programming

Compiled By: Kamal Acharya

Binary expression

Page 8: Expression and Operartor In C Programming

Compiled By: Kamal Acharya

Unary Expression

Page 9: Expression and Operartor In C Programming

Compiled By: Kamal Acharya

Ternary Expression

(a>2) ? 1: 0

Operator

First operand is a condition

Second operand is a value

Third operand is another value

Page 10: Expression and Operartor In C Programming

Compiled By: Kamal Acharya

Arithmetic operators

They operate on numbers and the result is a number.

The type of the result depends on the types of the operands.

If the types of the operands differ (e.g. an integer added to a floating point number), one is "promoted" to other.

The "smaller" type is promoted to the "larger" one.

char int float double

Page 11: Expression and Operartor In C Programming

Compiled By: Kamal Acharya

Example of promotion:The result of the following “double division” is 2.5

5 / 2.0

Before the division process, 5 is promoted from integer 5 to float 5.0

The result of the following “integer division” is 25 / 2

There is no promotion occurred. Both operands are the same type.

Page 12: Expression and Operartor In C Programming

Compiled By: Kamal Acharya

Arithmetic operators: +, *

+ is the addition operator* is the multiplication operatorThey are both binary

Page 13: Expression and Operartor In C Programming

Compiled By: Kamal Acharya

Arithmetic operator:

This operator has two meanings: subtraction operator (binary)

negation operator (unary)

e.g. 31 - 2

e.g. -10

Page 14: Expression and Operartor In C Programming

Compiled By: Kamal Acharya

Arithmetic operator: /

The result of integer division is an integer:

e.g. 5 / 2 is 2, not 2.5

Page 15: Expression and Operartor In C Programming

Compiled By: Kamal Acharya

Arithmetic operator: %

The modulus (remainder) operator.It computes the remainder after the first

operand is divided by the second

It is useful for making cycles of numbers: For an int variable x :

if x is: 0 1 2 3 4 5 6 7 8 9 ...(x%4) is: 0 1 2 3 0 1 2 3 0 1 ...

e.g. 5 % 2 is 1, 6 % 2 is 0

Page 16: Expression and Operartor In C Programming

Compiled By: Kamal Acharya

Page 17: Expression and Operartor In C Programming

Compiled By: Kamal Acharya

Page 18: Expression and Operartor In C Programming

Compiled By: Kamal Acharya

Relational operators

These perform comparisons and the result is what is called a boolean: a value TRUE or FALSE

FALSE is represented by 0; anything else is TRUE

The relational operators are: < (less than) <= (less than or equal to) > (greater than) >= (greater than or equal to) == (equal to) != (not equal to)

Page 19: Expression and Operartor In C Programming

Compiled By: Kamal Acharya

Page 20: Expression and Operartor In C Programming

Compiled By: Kamal Acharya

Logical operators(also called Boolean operators)

These have Boolean operands and the result is also a Boolean.

The basic Boolean operators are: && (logical AND) || (logical OR) ! (logical NOT) -- unary

Page 21: Expression and Operartor In C Programming

Compiled By: Kamal Acharya

Page 22: Expression and Operartor In C Programming

Compiled By: Kamal Acharya

Assignment operator: =

Binary operator used to assign a value to a variable.

Page 23: Expression and Operartor In C Programming

Compiled By: Kamal Acharya

Special assignment operators

write a += b; instead of a = a + b;write a -= b; instead of a = a - b;write a *= b; instead of a = a * b;write a /= b; instead of a = a / b;write a %= b; instead of a = a % b;

Page 24: Expression and Operartor In C Programming

Compiled By: Kamal Acharya

Special assignment operators

Increment, decrement operators: ++, -- Instead of a = a + 1 you can write a++ or ++a Instead of a = a - 1 you can write a-- or --a

What is the difference?

num = 10;ans = num++;

num = 10;ans = ++num;

First increment num,then assign num to ans.In the end,

num is 11ans is 11

First assign num to ans,then increment num.In the end,

num is 11ans is 10

post-increment pre-increment

Page 25: Expression and Operartor In C Programming

Compiled By: Kamal Acharya

Result of postfix Increment

Page 26: Expression and Operartor In C Programming

Compiled By: Kamal Acharya

Result of Prefix Increment

Page 27: Expression and Operartor In C Programming

Compiled By: Kamal Acharya

Precedence & associativity

How would you evaluate the expression 17 - 8 * 2 ?

Is it 17 - (8 * 2)or (17 - 8) * 2 ?

These two forms give different results.We need rules!

Page 28: Expression and Operartor In C Programming

Compiled By: Kamal Acharya

Precedence & associativity

When two operators compete for the same operand (e.g. in 17 - 8 * 2 the operators - and * compete for 8) the rules of precedence specify which operator wins. The operator with the higher precedence wins

If both competing operators have the same precedence, then the rules of associativity determine the winner.

Page 29: Expression and Operartor In C Programming

Compiled By: Kamal Acharya

Precedence & associativity

! Unary – * / %

+ – < <= >= >

= = !=

&&

||

=

higher precedence

lower precedence

Associativity: execute left-to-right (except for = and unary – )

Page 30: Expression and Operartor In C Programming

Compiled By: Kamal Acharya

Example: Left associativity

3 * 8 / 4 % 4 * 5

Page 31: Expression and Operartor In C Programming

Compiled By: Kamal Acharya

Example: Right associativity

a += b *= c-=5

Page 32: Expression and Operartor In C Programming

Compiled By: Kamal Acharya

Precedence & associativity

Examples: X =17 - 2 * 8 Ans: X=17-(2*8) , X=1

Y = 17 - 2 - 8 Ans: Y = (17-2)-8, Y=7

Z = 10 + 9 * ((8 + 7) % 6) + 5 * 4 % 3 *2 + 1 ?

Not sure? Confused? then use parentheses in your code!

Page 33: Expression and Operartor In C Programming

Compiled By: Kamal Acharya

Sizeof() Operator

C provides a unary operator named sizeof to find number of bytes needed to store an object.

An expression of the form sizeof(object) returns an integer value that represents the number of bytes needed to store that object in memory.

printf(“%d”,sizeof(int)); /* prints 2 */ printf(“%d”,sizeof(char)); /* prints 1 */ printf(“%d”,sizeof(float)); /* prints 4 */