6.1. Expression Statements
y = x; // An assignment sum = a + b; // Calculation and assignment ++x; 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:
100; 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; /* ... */ (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.