++i与i++

#include<stdio.h>
int main()
{
    int i = 2;
    int num;
    num = (i++)+(i++)+(i++)+(i++);
    printf(“num = %d,i = %d\n”,num,i);

}

运行结果:num = 8,i = 6

上面程序可等价为:

num = i + i + i + i;

i++;

i++;

i++;

i++;

先输出num,i再自加;

★★★  在num = 这个语句中当碰到结束符时,i++才执行,结束符共有三个:1.分号“;” 也就是上面num = 语句结尾的分号   2.逗号“,” 这个在下面的程序中会有体现   3.函数的括号

                              

#include<stdio.h>
int main()
{
    int i = 2;
    int num;
    num = (++i)+(++i)+(++i)+(++i);
    printf(“num = %d,i = %d\n”,num,i);
}

运行结果:num = 19,i = 6

前两个++i相加等价于i = i + i;i = i + 1;运行完i = 4然后num = i + i = 8;然后num = 8 + (++i);等价于i = i + 1 = 5;

num = num + i = 13;最后一个++i同理,得出结果。

#include<stdio.h>
int main()
{
    int i = 2;
    i = i * (i + (++i))
;

    printf(“i = %d\n”,i);
}

运行结果:i = 18

这个程序是先运行括号里的两式,理由同上

#include<stdio.h>
int main()
{
    int i = 2;
    i = i * ((i++) + (++i))
;

    printf(“i = %d\n”,i);
}

运行结果:i = 19

同理,当遇到逗号结束符时i++才执行

#include<stdio.h>
int main()
{
    int i = 2;
    i = (i++)+(++i)+(i++) + (++i)
;

    printf(“i = %d\n”,i);
}

运行结果:i = 15

#include<stdio.h>
int main()
{
    int i = 2;
    i = (++i) + (i++) + (++i) + (i++)
;

    printf(“i = %d\n”,i);
}

运行结果:i = 16

★ i++被替换为数值,++i被替换为变量名

#include<stdio.h>

void func(int a,int b,int c,int d,int e)

{

    printf("a = %d\n",a);

    printf("b = %d\n",b);

    printf("c = %d\n",c);

    printf("d = %d\n",d);

    printf("e = %d\n",e);

}


int main()
{
    int i = 2;
    func(++i,i++,i++,i,++i);

    return 0;

}

结果:6 4 3 6 6

函数形参从右往左获取值,第一个++i运行完i = 3,因为++i和i都被替换为变量名,所以这时为func(++i,i++,i++,i,i),

然后运行中间的i++,i++被替换为数值,也就是3,这时为func(++i,i++,3,i,i),继续往左碰到了逗号,我前面说函数

函数的括号为结束符,所以中间的i++要执行,i就变为4,继续往左,变为func(++i,4,3,i,i),同理遇到逗号,i变为5,

最后运行++i,i = 6,func(6,4,3,i,i),后面两个i现在也为6,所以输出结果为6 4 3 6 6.

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值