小泉向西流 发表于 2014-5-21 20:43:26

关于单个printf函数输出多个i++的问题。

本帖最后由 小泉向西流 于 2014-5-21 20:45 编辑

这是小甲鱼《c语言程序设计视频教程》第三章007视频,第25分出现的视频例子。
关于printf函数的讲解的例子。


#include<stdio.h>
void main()
{
      int i=8;
      int j=8;
      printf("输出i的变化值:\n");
      printf("%d\n%d\n%d\n%d\n%d\n%d\n",++i,--i,i++,i--,-i++,-i--);

      printf("输出j的变化值:\n");
      printf("%d\n",++j);
      printf("%d\n",--j);
      printf("%d\n",j++);
      printf("%d\n",j--);
      printf("%d\n",-j++);            // 相当于-(j++)
      printf("%d\n",-j--);
}


vc6.0的结果如下:

对于一个printf函数中只有一个++,很好理解, 即j的变化。
但对于一个printf函数中含有多个++,即i的数值变化, 搞不懂是怎么变的。
求大神指导。

kikiatw 发表于 2014-5-22 09:05:35

小甲魚匯編視頻有提到這個, 主要是VC6在運算的時候會做優化, 不能以正常的算法來算, 這是VC6的優化, 所以小甲魚有說不必糾結這樣的問題, 因為你實際在寫大型程序的時候是不會用到這些的,
只要記住:
後綴增加 ++i (向右結合)
前綴增加 i++ (向左結合)
以上的"定義" 就可以了

765643729 发表于 2014-5-27 11:30:41

有篇关于i++的




页: [1]
查看完整版本: 关于单个printf函数输出多个i++的问题。