
这个C语言程序的答案看不懂,希望好心人帮忙解释一下哦,急用,非常感谢!
main(){inti,k;i=3;k=++i+(++i);pintf("k=%d,i=%d\n",k,i);k=i+++(++i);pintf("k=%d,i=%d\n...
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 展开
{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 展开
1个回答
展开全部
对于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。
对于i+++(++i)和前面就一样了,i的值现在是5,i++可以无视掉,因为它是先参与运算才赋值的,所以知道k被赋值,第一句i自加都是不进行的,然后加上++i,也就是i先自加,现在i的值是6了,i+i就=12,然后++i生效,i=7。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询