中文版 | English

网站首页 | 个人作品 | 站长日志 | 给我留言 | 经典分享 | 友情链接 | 黑白人生


printf函数调用时进栈的顺序及其特殊用法举例

from:http://embedlinux.ycool.com/post.2849497.html ————————————–(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 这样的printf用法你见过么? #include "stdafx.h" int _tmain(int argc, _TCHAR* argv[]) {      printf("Hello "    "World!\n");      char szSQL[1024];      int iStuID = 10,      iClassID = 100;      sprintf(szSQL,          "Select * from Score where "          "StuID = %d"          "and ClassID =  %d\n",          iStuID,          iClassID          );      printf(szSQL);      return 0; } 程序运行结果如下: Hello World! Select * from Score where StuID = 10and ClassID =  100 从第二行输出结果,你看出什么来了么?



Copyright 1998-2021. All rights reserved.
工信部备案:冀ICP备19032940号-1|公安部备案号:13020802000209