c语言(解释如何运算结果)
发布网友
发布时间:2022-05-26 23:39
我来回答
共6个回答
热心网友
时间:2024-11-30 09:15
printf("%d,%d,%d,%d\n",i,j,++i,j++);
1.先进行j++的处理,++在后,先引用后计算,所以第四位的%d是10
2.再进行++i的处理,++在前,先计算后引用,所以第三位的%d是9
3.再进行j的处理,在第一步后,j已经被加了1,所以第二位的%d是11
4.再进行i的处理,在第二步后,i已经被加了1,所以第一位的%d是9
所以运行结果是9 11 9 10
热心网友
时间:2024-11-30 09:15
应该是 8,10,9,10
热心网友
时间:2024-11-30 09:16
函数printf从左往右读取,然后将先读取放到栈底,最后读取的放在栈顶,处理时候是从栈顶开始的,所有我们看见的结果是,从右边开始处理的。
参考资料:http://ke.baidu.com/view/1427555.htm
热心网友
时间:2024-11-30 09:16
++i:++在前面是先+1后使用
j++:++在后面是先使用后+1
C语言参数是从右到左压栈
1)j入栈,然j+1(入栈的是10,入栈后j等于11)
2)i+1,然后i入栈(i等于9,入栈的是9)
3)j入栈(入栈的是11)
4)i入栈(入栈的是9)
输出结果就是入栈的值,从左到右是 9 11 9 10
我在vc下试过了
热心网友
时间:2024-11-30 09:17
#include "stdafx.h"
#include "stdio.h"
int main(int argc, char* argv[]) //传递参数型主函数
{int i,j;
i=8,j=10; //中间最好用分号分开
printf("%d,%d,%d,%d\n",i,j,++i,j++); // 结果 8,9,9,9
return 0; //正常退出
}
++i // 先自加,之后表达式的结果为加后的结果
j++ //表达式的结果为j,然后自加
不知道清楚了么
热心网友
时间:2024-11-30 09:18
这是有一个算法的
printf("%d,%d,%d,%d\n",i,j,++i,j++);
可以看成是
printf("%d",i);
printf("%d",j);
printf("%d",++i);
printf("%d',j++);
所以最后结果应该是8 10 9 10
参考资料:如果您的回答是从其他地方引用,请表明出处