发布网友 发布时间: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入栈.