Difference between revisions of "Week 2"
Line 15: | Line 15: | ||
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. | 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); | + | ''a = printf("%d %d, b, b = b + 1);'' |
− | printf("%d\n", a);'' | + | ''printf("%d\n", a);'' |
What is a? | What is a? |
Revision as of 12:34, 19 May 2010
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).