Printf函数的栈操作及打印符格式的使用

1、printf 打印符的使用

#include <stdio.h>

int main()
{
    int a = 2;
    int b = 3;
    printf("a = %%%d, b = %%%d",a,b);  // a = %2, b = %3
    printf("a = %%d, b = %%d",a,b);    // a = %d  b = %d
    printf("a = %d, b = %d",a,b);      // a = 2,  b = 3
}

2、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送入堆栈。

    扫描二维码关注公众号,回复: 9615466 查看本文章
  3. i=1;计算i,i=1;将i的值1送入堆栈。

输出结果为(出栈顺序): 1 2 3

发布了16 篇原创文章 · 获赞 9 · 访问量 797

猜你喜欢

转载自blog.csdn.net/qq_44045338/article/details/104504792
今日推荐