为了账号安全,请及时绑定邮箱和手机立即绑定

请问 cout<<(coor1++).getx()<<","<<(coor1++).gety()<<endl; 和 cout<<(coor1++).getx()<<","; cout<<(coor1++).gety()<<endl; 打印出的结果不一样是为什么呀

请问

cout<<(coor1++).getx()<<","<<(coor1++).gety()<<endl;

cout<<(coor1++).getx()<<",";

cout<<(coor1++).gety()<<endl;

打印出的结果不一样是为什么呀


正在回答

2 回答

因为老师的是分开的,老师那样写是为了让我们看清楚后置++运算符怎么用的。如

cout<<(coor++).getX()<<",";

cout<<(coor++).getY()<<endl;

这里面第一次的getX()就和我们之前学过a++一样,先用后+


后面连起来用是因为入栈的方式,才输出 2, 4

C/C++都一致的,即都是先运算b,b入栈(存储进缓冲区),运算a,a入栈(存储进缓冲区)
               输出(显示)时,a先出栈(a缓冲区被刷新),b出栈(b缓冲区被刷新)


0 回复 有任何疑惑可以回复我~

在第一种写法中,coor1只进行了一次++运算;在第二种写法中,cout<<(coor1++).getx()对coor1这个对象进行了一次++运算,在cout<<(coor1++).gety()中,又进行了一次++运算。所以结果不一样。把cout<<(coor1++).gety()改为cout<<coor.gety()就行了。(应该是这样的,没运行,不敢肯定)

0 回复 有任何疑惑可以回复我~
#1

慕UI0451504 提问者

Coordinate coor1(1,3); cout<<(coor1++).getx()<<","<<(coor1++).gety()<<endl;这样算的结果是2,3; cout<<(coor1++).getx()<<","; cout<<(coor1++).gety()<<endl; 这样算的结果是1,4; 所以我很迷。。
2020-04-06 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
C++远征之模板篇
  • 参与学习       91173    人
  • 解答问题       318    个

本C++教程力求即学即会,所有知识以实践方式讲解到操作层面

进入课程

请问 cout<<(coor1++).getx()<<","<<(coor1++).gety()<<endl; 和 cout<<(coor1++).getx()<<","; cout<<(coor1++).gety()<<endl; 打印出的结果不一样是为什么呀

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信