printf函数调用时进栈的顺序正文
————————————–(1)———————————- # include <stdio.h> main() { int i=1; printf(”%d %d %d”, i , i++, i++); } 进栈顺序: 1. i=1;算最后一个i++,i=2;将加之前i的值1送入堆栈。 2. i=2;算倒数第二个i++,i=3;将加之前i的值2送入堆栈。 3. i=3;计算i,i=3;将加之前i的值3送入堆栈。 输出结果为(出栈顺序):3 2 1 ————————————–(2)———————————- # include <stdio.h> main() { int i=1; printf(”%d %d %d”, i , ++i, ++i); } 进栈顺序: 1. i=1;算最后一个++i,i=2;将加之后i的值2送入堆栈。 2. i=2;算倒数第二个++i,i=3;将加之后i的值3送入堆栈。 3. i=3;计算i,i=3;将加之后i的值3送入堆栈。 输出结果为(出栈顺序):3 3 2 ————————————–(3)———————————- # include <stdio.h> main() { int i, j, k; i=1; j=2; k=3; printf(”%d %d %d”, i , j, k); } 进栈顺序: 1. k=3;算k,k=3;将k的值3送入堆栈。 2. j=2;算j,j=2;将j的值2送入堆栈。 3. i=1;计算i,i=1;将i的值1送入堆栈。 输出结果为(出栈顺序):1 2 3 |
|