加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

C语言printf函数输出表达式中的计算顺序

(2011-11-28 19:38:27)
标签:

printf函数

表达式

计算顺序

杂谈

分类: 编程

Turbo C,VC++6.0都是按从右到左进行计算的,但注意自增和自减运算。

 

看下面一个例子:

#include <stdio.h>

main()
{
    int i=8;
    printf%d, %d, %d, %d\n",i,--i,i,i--);

 }

 运行结果:7, 7, 8, 8

为什么会有这样的结果呢?这就涉及到自增、自减运算符的问题了。

++i    i自增1后再参与其它运算。

--i    i自减1后再参与其它运算。

i++    i参与运算后,i的值再自增1。

i--    i参与运算后,i的值再自减1。

printf()函数中,i++,i-- ,i的值是在printf()函数之后才会被刷新,所以printf()函数中,i++,i-- 对i的值暂时不产生影响,而++i、--i会有影响。

  

  再看一个例子加深理解:

#include <stdio.h>

main()
{

    int i=8;
    printf("%d, %d, %d, %d, %d, %d\n",i++,i++,i++,i++,i++,i++);
    printf("%d\n\n",i);

 

    i=8;
    printf("%d, %d, %d, %d, %d, %d\n",++i,++i,++i,++i,++i,++i);
    printf("%d\n",i);
}

运行结果:

8, 8, 8, 8, 8, 8
14

14, 13, 12, 11, 10, 9
14

Press any key to continue

 

另外,虽然printf()函数是从右往左计算表达式的,但输出时是从左往右输出的。

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有