Difference between revisions of "Week 2"

From CDOT Wiki
Jump to: navigation, search
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).