正在卓尼小乱 发表于 2017-8-19 22:36:52

自增自减运算符在printf语句中的结合性问题

void main()
{
        int i=8;

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

图片是的代码的运行结果,求解答。

小甲鱼 发表于 2017-8-19 22:44:25

因为加加减减运算符放在标识符后面的话,下一条语句才生效。所以,i++,i-- 这些其实并不会影响到 i 当前打印的值。

而如果将加加减减运算符放在标识符前面的话,是即时生效的。又因为参数传递通常是自右向左依次入栈,所以 --i 先于 ++i 被运算,因此 --i 先变为 7,++i 再变回 8。


正在卓尼小乱 发表于 2017-8-20 11:32:33

谢谢,小甲鱼,带你学c带你飞 系列什么时候能出完{:10_257:}

小甲鱼 发表于 2017-8-20 22:26:29

正在卓尼小乱 发表于 2017-8-20 11:32
谢谢,小甲鱼,带你学c带你飞 系列什么时候能出完

这两个月~

吃瓜c与数据 发表于 2017-9-14 14:19:25

拿奖励去学习
页: [1]
查看完整版本: 自增自减运算符在printf语句中的结合性问题