• C语言中的printf函数的输入输出问题


    这个问题是个很基础,但是我一直不知道的问题,是同学问了之后才知道的,长知识了。

    这里要注意的是,printf函数是从右向左计算,从左向右输出。

    距离如下:

    #include <stdio.h>
    main()
    {
        int i=8;
        printf%d, %d, %d, %d
    ",i,--i,i,i--);
     }

    此程序输出结果为:7, 7, 8, 8。原因是,printf()函数中,i++,i-- 时,i的值是在printf()函数之后才会被刷新,所以在printf()函数中,i++,i-- 对i的值暂时不产生影响,而++i、--i会有影响。

    实际这里是涉及到printf的运行规则问题,是先入栈再出栈,然后再输出。具体如下。

    对于printf函数中的参数,按照入栈顺序进入栈堆,然后先入栈者到栈底,后入栈者到栈顶,完成后,开始计算,由栈顶开始计算,先出栈者为printf函数中的右侧参数,计算完后接着出栈,然后计算下面的元素,这样,printf函数中的第一个元素就成为最后一个计算的元素,然后再按照由右向左的顺序将计算结果输出,所以上述例子的结果如是。

    以此记录,以供学习!

  • 相关阅读:
    easy-ui的data-options用法
    my_note
    定时器
    abp安装
    微信小程序
    几个免费的ui 后台
    abp创建实体的方法
    winform 开源项目
    func委托
    for update 锁行和锁表
  • 原文地址:https://www.cnblogs.com/Pillar/p/4328984.html
Copyright © 2020-2023  润新知