Computer Science: A Structured Programming Approach Using C 1
Objectives
❏ To be able to list and describe the six expression categories
❏ To understand the rules of precedence and associativity in
evaluating expressions
❏ To understand the result of side effects in expression evaluation
❏ To be able to predict the results when an expression is evaluated
❏ To understand implicit and explicit type conversion
❏ To understand and use the first four statement types: null,
expression, return, and compound
Chapter 3
Structure of a C Program
Computer Science: A Structured Programming Approach Using C 2
3-1 Expressions
An expression is a sequence of operands and operators
that reduces to a single value. Expressions can be
simple or complex. An operator is a syntactical token
that requires an action be taken. An operand is an
object on which an operation is performed; it receives
an operator’s action.
Primary Expressions
Postfix Expressions
Prefix Expressions
Unary Expressions
Binary Expressions
Topics discussed in this section:
Computer Science: A Structured Programming Approach Using C 3
An expression always reduces to a single value.
Note
Computer Science: A Structured Programming Approach Using C 4
FIGURE 3-2 Postfix Expressions
Computer Science: A Structured Programming Approach Using C 5
(a++) has the same effect as (a = a + 1)
Note
Computer Science: A Structured Programming Approach Using C 6
FIGURE 3-3 Result of Postfix a++
Computer Science: A Structured Programming Approach Using C 7
The operand in a postfix expression must be a variable.
Note
Computer Science: A Structured Programming Approach Using C 8
PROGRAM 3-1 Demonstrate Postfix Increment
Computer Science: A Structured Programming Approach Using C 9
PROGRAM 3-1 Demonstrate Postfix Increment (continued)
Computer Science: A Structured Programming Approach Using C 10
FIGURE 3-4 Prefix Expression
Computer Science: A Structured Programming Approach Using C 11
The operand of a prefix expression must be a variable.
Note
Computer Science: A Structured Programming Approach Using C 12
FIGURE 3-5 Result of Prefix ++a
Computer Science: A Structured Programming Approach Using C 13
(++a) has the same effect as (a = a + 1)
Note
Computer Science: A Structured Programming Approach Using C 14
PROGRAM 3-2 Demonstrate Prefix Increment
Computer Science: A Structured Programming Approach Using C 15
PROGRAM 3-2 Demonstrate Prefix Increment (continued)
Computer Science: A Structured Programming Approach Using C 16
If ++ is after the operand, as in a++, the increment takes
place after the expression is evaluated.
If ++ is before the operand, as in ++a, the increment
takes place before the expression is evaluated.
Note
Computer Science: A Structured Programming Approach Using C 17
FIGURE 3-6 Unary Expressions
Computer Science: A Structured Programming Approach Using C 18
Table 3-1 Examples of Unary Plus And Minus Expressions
Computer Science: A Structured Programming Approach Using C 19
FIGURE 3-7 Binary Expressions
Computer Science: A Structured Programming Approach Using C 20
Both operands of the modulo operator (%) must
be integral types.
Note
Computer Science: A Structured Programming Approach Using C 21
PROGRAM 3-3 Binary Expressions
Computer Science: A Structured Programming Approach Using C 22
PROGRAM 3-3 Binary Expressions (continued)
Computer Science: A Structured Programming Approach Using C 23
PROGRAM 3-3 Binary Expressions (continued)
Computer Science: A Structured Programming Approach Using C 24
The left operand in an assignment expression must be a
single variable.
Note
Computer Science: A Structured Programming Approach Using C 25
Table 3-2 Expansion of Compound Expressions
Computer Science: A Structured Programming Approach Using C 26
PROGRAM 3-4 Demonstration of Compound Assignments
Computer Science: A Structured Programming Approach Using C 27
PROGRAM 3-4 Demonstration of Compound Assignments
Computer Science: A Structured Programming Approach Using C 28
PROGRAM 3-4 Demonstration of Compound Assignments
Computer Science: A Structured Programming Approach Using C 29
3-2 Precedence and Associativity
Precedence is used to determine the order in which
different operators in a complex expression are
evaluated. Associativity is used to determine the order
in which operators with the same precedence are
evaluated in a complex expression.
Precedence
Associativity
Topics discussed in this section:
Computer Science: A Structured Programming Approach Using C 30
PROGRAM 3-5 Precedence
Computer Science: A Structured Programming Approach Using C 31
PROGRAM 3-5 Precedence
Computer Science: A Structured Programming Approach Using C 32
Computer Science: A Structured Programming Approach Using C 33
FIGURE 3-8 Left-to-Right Associativity
Computer Science: A Structured Programming Approach Using C 34
FIGURE 3-9 Right-to-Left Associativity
So you can have things like:
int i =1;
int j =2;
i = j*= 2; // i = j = 4 after
i += i + j+=2; // j=6, i = 10
// after
Computer Science: A Structured Programming Approach Using C 35
You can actually say
int i, sum;
i = sum = 3 +1; // Right to left
// associativity
And i will equal 4, but it is not
good programming practice.
Computer Science: A Structured Programming Approach Using C 36

Chap-03-1.ppt

  • 1.
    Computer Science: AStructured Programming Approach Using C 1 Objectives ❏ To be able to list and describe the six expression categories ❏ To understand the rules of precedence and associativity in evaluating expressions ❏ To understand the result of side effects in expression evaluation ❏ To be able to predict the results when an expression is evaluated ❏ To understand implicit and explicit type conversion ❏ To understand and use the first four statement types: null, expression, return, and compound Chapter 3 Structure of a C Program
  • 2.
    Computer Science: AStructured Programming Approach Using C 2 3-1 Expressions An expression is a sequence of operands and operators that reduces to a single value. Expressions can be simple or complex. An operator is a syntactical token that requires an action be taken. An operand is an object on which an operation is performed; it receives an operator’s action. Primary Expressions Postfix Expressions Prefix Expressions Unary Expressions Binary Expressions Topics discussed in this section:
  • 3.
    Computer Science: AStructured Programming Approach Using C 3 An expression always reduces to a single value. Note
  • 4.
    Computer Science: AStructured Programming Approach Using C 4 FIGURE 3-2 Postfix Expressions
  • 5.
    Computer Science: AStructured Programming Approach Using C 5 (a++) has the same effect as (a = a + 1) Note
  • 6.
    Computer Science: AStructured Programming Approach Using C 6 FIGURE 3-3 Result of Postfix a++
  • 7.
    Computer Science: AStructured Programming Approach Using C 7 The operand in a postfix expression must be a variable. Note
  • 8.
    Computer Science: AStructured Programming Approach Using C 8 PROGRAM 3-1 Demonstrate Postfix Increment
  • 9.
    Computer Science: AStructured Programming Approach Using C 9 PROGRAM 3-1 Demonstrate Postfix Increment (continued)
  • 10.
    Computer Science: AStructured Programming Approach Using C 10 FIGURE 3-4 Prefix Expression
  • 11.
    Computer Science: AStructured Programming Approach Using C 11 The operand of a prefix expression must be a variable. Note
  • 12.
    Computer Science: AStructured Programming Approach Using C 12 FIGURE 3-5 Result of Prefix ++a
  • 13.
    Computer Science: AStructured Programming Approach Using C 13 (++a) has the same effect as (a = a + 1) Note
  • 14.
    Computer Science: AStructured Programming Approach Using C 14 PROGRAM 3-2 Demonstrate Prefix Increment
  • 15.
    Computer Science: AStructured Programming Approach Using C 15 PROGRAM 3-2 Demonstrate Prefix Increment (continued)
  • 16.
    Computer Science: AStructured Programming Approach Using C 16 If ++ is after the operand, as in a++, the increment takes place after the expression is evaluated. If ++ is before the operand, as in ++a, the increment takes place before the expression is evaluated. Note
  • 17.
    Computer Science: AStructured Programming Approach Using C 17 FIGURE 3-6 Unary Expressions
  • 18.
    Computer Science: AStructured Programming Approach Using C 18 Table 3-1 Examples of Unary Plus And Minus Expressions
  • 19.
    Computer Science: AStructured Programming Approach Using C 19 FIGURE 3-7 Binary Expressions
  • 20.
    Computer Science: AStructured Programming Approach Using C 20 Both operands of the modulo operator (%) must be integral types. Note
  • 21.
    Computer Science: AStructured Programming Approach Using C 21 PROGRAM 3-3 Binary Expressions
  • 22.
    Computer Science: AStructured Programming Approach Using C 22 PROGRAM 3-3 Binary Expressions (continued)
  • 23.
    Computer Science: AStructured Programming Approach Using C 23 PROGRAM 3-3 Binary Expressions (continued)
  • 24.
    Computer Science: AStructured Programming Approach Using C 24 The left operand in an assignment expression must be a single variable. Note
  • 25.
    Computer Science: AStructured Programming Approach Using C 25 Table 3-2 Expansion of Compound Expressions
  • 26.
    Computer Science: AStructured Programming Approach Using C 26 PROGRAM 3-4 Demonstration of Compound Assignments
  • 27.
    Computer Science: AStructured Programming Approach Using C 27 PROGRAM 3-4 Demonstration of Compound Assignments
  • 28.
    Computer Science: AStructured Programming Approach Using C 28 PROGRAM 3-4 Demonstration of Compound Assignments
  • 29.
    Computer Science: AStructured Programming Approach Using C 29 3-2 Precedence and Associativity Precedence is used to determine the order in which different operators in a complex expression are evaluated. Associativity is used to determine the order in which operators with the same precedence are evaluated in a complex expression. Precedence Associativity Topics discussed in this section:
  • 30.
    Computer Science: AStructured Programming Approach Using C 30 PROGRAM 3-5 Precedence
  • 31.
    Computer Science: AStructured Programming Approach Using C 31 PROGRAM 3-5 Precedence
  • 32.
    Computer Science: AStructured Programming Approach Using C 32
  • 33.
    Computer Science: AStructured Programming Approach Using C 33 FIGURE 3-8 Left-to-Right Associativity
  • 34.
    Computer Science: AStructured Programming Approach Using C 34 FIGURE 3-9 Right-to-Left Associativity
  • 35.
    So you canhave things like: int i =1; int j =2; i = j*= 2; // i = j = 4 after i += i + j+=2; // j=6, i = 10 // after Computer Science: A Structured Programming Approach Using C 35
  • 36.
    You can actuallysay int i, sum; i = sum = 3 +1; // Right to left // associativity And i will equal 4, but it is not good programming practice. Computer Science: A Structured Programming Approach Using C 36

Editor's Notes

  • #35 Associativity used when operators have same precedence: the += type operatorrs use R->L associativity, basic math operators like * use L->R