zoukankan      html  css  js  c++  java
  • 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函数中的第一个元素就成为最后一个计算的元素,然后再按照由右向左的顺序将计算结果输出,所以上述例子的结果如是。

    以此记录,以供学习!

  • 相关阅读:
    游标定位:Cursor类
    拨号操作——android.intent.action.CALL
    按键——Button事件监听器
    文本框——EditText
    配置文件:mainfest.xml
    win7如何设置以管理员身份运行
    随机数:rand()
    std::string 和 CString问题
    文件操作:rewind()
    文件操作:fread()和fwrite()
  • 原文地址:https://www.cnblogs.com/Pillar/p/4328984.html
Copyright © 2011-2022 走看看