作业帮 > 综合 > 作业

这个C语言程序的答案看不懂,希望好心人帮忙解释一下哦,急用,非常感谢!

来源:学生作业帮 编辑:搜搜考试网作业帮 分类:综合作业 时间:2024/04/26 22:41:47
这个C语言程序的答案看不懂,希望好心人帮忙解释一下哦,急用,非常感谢!
main()
{int i,k;
i=3;
k=++i+(++i);
pintf("k=%d,i=%d\n",k,i);
k=i+++(++i);
pintf("k=%d,i=%d\n",k,i);

运行后结果是:10 ,5
12 ,7
这个C语言程序的答案看不懂,希望好心人帮忙解释一下哦,急用,非常感谢!
对于k=++i+(++i),++的优先度比+要高,所以等同于(++i)+(++i),说白了就是i先自加,然后i再自加,然后i再加上i赋给k,两个5相加,等于10
对于i+++(++i)和前面就一样了,i的值现在是5,i++可以无视掉,因为它是先参与运算才赋值的,所以知道k被赋值,第一句i自加都是不进行的,然后加上++i,也就是i先自加,现在i的值是6了,i+i就=12,然后++i生效,i=7.