求解运行结果

发布网友 发布时间:2024-10-23 23:02

我来回答

4个回答

热心网友 时间:2024-11-16 05:46

呵呵
还是我来

打印之前先运算
所以 先++
你去看看所有的运算的优先级比较比较

printf("%d,%d,%d,%d",i,j,++i,j++);运算的顺序是这样子的
++i后来j++
打印的顺序呢是从前向后的
++i是前++ 所以先++变成了9
所以这个时候相当于
printf("%d,%d,%d,%d",i,j,i,j++);
所以两个9 应该明白了?
下面是j++
打印的时候因为是后++
所以先打印了j
再++
最后才轮到前面的j
这样你应该懂了吧?

热心网友 时间:2024-11-16 05:43

结果: 8,10,9,10

假设 i=8 是你拥有的硬币数目,
++i; 是我先给你一个硬币,你再告诉别人说你有几个硬币,也就是9个
i++; 是你先给别人说你有几枚硬币,也就是8个, 然后我再给你一枚.
就是说你告诉别人说你有 8 枚硬币之后,你的硬币数变成了9个.

热心网友 时间:2024-11-16 05:50

printf("%d",a)是在屏幕上输出a的值

i的值是8,故第一个数是8
j的值是10,股第一个数是10
++i表示i+1整体的值,顺序是先对原值加1,再表示原值,故为9
j++本身表示j的的值,顺序是先表示原值,再对原值加1,故为10

热心网友 时间:2024-11-16 05:50

printf的参数入栈顺序是从右向左的(可以简单的理解为求值顺序是从右向左的),即最右边的j++先入栈(j值10入栈,然后j值加1变为11),然后再接下来的i入栈,然后又一个j++栈,由于第一个j++使j值变为了11,所以这里将1入栈,并值j值加1变成了12,然后再i入栈.

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com