Previous Page
Next Page

6.1. Expression Statements

An expression statement is an expression followed by a semicolon:

[expression] ;

In an expression statement, the expressionwhether an assignment or another operationis evaluated for the sake of its side effects. Following are some typical expression statements :

y = x;                         // An assignment
sum = a + b;                   // Calculation and assignment
printf("Hello, world\n");      // A function call

The type and value of the expression are irrelevant, and are discarded before the next statement is executed. For this reason, statements such as the following are syntactically correct, but not very useful:

y < x;

If a statement is a function call and the return value of the function is not needed, it can be discarded explicitly by casting the function as void:

char name[32];
/* ... */
(void)strcpy( name, "Jim" );   // Explicitly discard
                               // the return value.

A statement can also consist of a semicolon alone: this is called a null statement . Null statements are necessary in cases where syntax requires a statement, but the program should not perform any action. In the following example, a null statement forms the body of a for loop:

for ( i = 0; s[i] != '\0'; ++i ) // Loop conditions
  ;                              // A null statement

This code sets the variable i to the index of the first null character in the array s, using only the expressions in the head of the for loop.

Previous Page
Next Page