Week 2
Reviewing IPC 144
The Question Mark Operator
c = a > b ? 100 : 200;
It replaces an if statement and is much faster. If a is greater than b then 100, else 200.
Please note: The types 100 and 200 must be the same type or else it will not work.
Function Calls
printf("%d %d, b, b = b + 1);
It returns 21 21. Why? Some compilers stack the arguments and read the last argument first. Therefore, it would see b as 21 as well.
a = printf("%d %d, b, b = b + 1);
printf("%d\n", a);
What is a?
6
printf returns the number of characters printed (scanf also returns the number of characters input - special note: scanf cannot return a number greater than the % symbols in your scanf statement).
A function must have one point of entry and one point of exit. Only one return statement per function.
The Include Statement
#include <stdio.h>
The hash tag (#) tells the compiler how to do things BEFORE compilation.
The #include keyword brings in the code from inside <stdio.h>
Header files are usually definitions of functions, classes, templates, etc.
The Define Statement
A #define statement is a simple search and replace in the current file.
#define SUM a+b
printf("%d\n", SUM*2);
This will print 50, not 60. It replaces SUM with a+b then operator precedence allows it to multiply first before addition.