打印

i++和++i的问题

[复制链接]
1186|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
gxgclg|  楼主 | 2012-2-27 18:12 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
#include<stdio.h>
main()
{
    int k,h;
    int i=4;
   
    k=(++i)+(++i)+(++i);
    printf("k=%d,i=%d\n",k,i);
   
    i=4;
    h=(i++)+(i++)+(i++);
    printf("h=%d,i=%d",h,i);
}
这个代码k=19,i=7;h=12,i=7;
这个别人问过的问题,先看第二个h,课本上解释是先执行i+i+i,即,4+4+4所以h为12,接着i连续加3次得7;

那么我的疑问是第一个为什么不是i先自加3次变7,再7+7+7=21,为什么结果是19.

2.在C语言中/40,/100,/x40,/x100,/0123,/x0123,各是什么意思?
  比如说/40=32=空格,怎么出来的,不是很懂,求详细点的解释,
  这个是《c和指针》 上的一个题目

相关帖子

沙发
火箭球迷| | 2012-2-27 18:28 | 只看该作者
i++表示的意思就是先把i值作为表达式值传递出去,在表达式计算结束时才增量i

如果你想要先增量,写成++i的形式就可以了。

这个就只是C语言的一个规定,没有为什么。就好像+号,没什么理由,就是用它做为加法的符号。

使用特权

评论回复
板凳
txcy| | 2012-2-29 19:28 | 只看该作者
很容易弄混淆的一个C语言问题

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

177

主题

1653

帖子

1

粉丝