微信公众号 
图码生活

每天发布有五花八门的文章,各种有趣的知识等,期待您的订阅与参与
电脑报 1992-2001 十年文章全集
电脑报 1992-2001 十年文章全集
包含从 1992 年 - 2001 年间,两万余篇期刊文章,查询最少输入两个字符
随便看看
读取中
读取中
标题C语言中自加(减)运算符使用的一个“疑问”
栏目软件操作与技巧
作者湖南 颜红武
发布1996-11-01
  ++i,--i
  i++,i--
  其中前两种是先加(减)后使用,后两种则是先使用后加(减)。
  但对于i=3时:
  表达式(i++)+(i++)+(i++)的值为多少,各种教材说法互不统一,有的认为是(如,潭浩强编著《C语言程序设计》清华大学出版社1991年版)。也有的认为是12(如:王森主编《C语言程序设计》电子工业出版社1995年版)。到底哪一个说法正确呢?笔者就上述问题编写了一个简单的程序在Tubro C上运行,程序如下:
  main()
  {int i,k;
  i=3;
  k=(i++)+(i++)+(i++);
  printf("k=%d,i=%d\n",k,i);
  i=3;
  printf("k=%d,i=%d\n",(i++)+(i++)+(i++),i);
  }
  运行结果则是:
  k=9,i=6
  k=12,i=3
  由此可知两本教材说明的结果都有出入,并非在所有的情况下,其值保持不变。
  同理:i=3时;
  (++i)+(++i)+(++i)表达式的值有时取15有时取18
  因此,读者在使用时应特别注意。