小指针输出问题

billykobe1 2009-04-25 10:43:14
#include<iostream>
using namespace std;
int main()
{
int a=2,*p=&a,*q=&a;
cout<<++*p<<" "<<a<<" "<<*q<<endl;
cout<<a<<" "<<*p<<endl;
return 0;
}
为什么答输出是
3 2 2
3 3
而不是
3 3 3
3 3
不是进行++*p后,变量a的值马上就变成了3么?怎么后面a,*q的值输出还是2啊!而在另一行里又变成了3!why??
...全文
173 19 打赏 收藏 转发到动态 举报
写回复
用AI写文章
19 条回复
切换为时间正序
请发表友善的回复…
发表回复
z15881328993 2009-04-26
  • 打赏
  • 举报
回复
3 3 3
3 3
billykobe1 2009-04-26
  • 打赏
  • 举报
回复
是不是压入栈时就改变了a的值???还是弹出数据时才改变a的值!!!>>>????
sanguomi 2009-04-26
  • 打赏
  • 举报
回复
又是这种SB题目
billykobe1 2009-04-26
  • 打赏
  • 举报
回复
我用Visual C++ 6.0的,,结果就是
3 2 2
3 3
fly_feng 2009-04-26
  • 打赏
  • 举报
回复
我在VC6下跑的结果是:
3 2 2
3 3
在VS2005下跑的结果是:
3 3 3
3 3
是不是cout参数入栈顺序随着不同的编译器实现而有所不同...?
hityct1 2009-04-26
  • 打赏
  • 举报
回复
vs2008的结果全是3
T技术沙龙 2009-04-26
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 deltamaster 的回复:]
我的运行结果是
3 3 3
3 3
[/Quote]
用的是什么编译器啊
taoyanxu1989 2009-04-26
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 onlinewan 的回复:]
引用 3 楼 deltamaster 的回复:
引用 1 楼 onlinewan 的回复:
因为cout是从右向左输出的

乱讲。


哈哈,打太快,描述错误,不好意思
我的意思是:cout参数入栈的顺序是从右到左,输出又是从栈顶开始,所以会有楼主描述的现象。
[/Quote]

学习了
deerwin1986 2009-04-26
  • 打赏
  • 举报
回复
COUT的传参顺序决定了这个结果 从右向左...
相当于_CDECL的...
deltamaster 2009-04-26
  • 打赏
  • 举报
回复
根据ISO C++,一定是全为3。
用VC++ 6就不敢保证了,因为很多东西都不符合ISO C++。
而这种写法本身就不是什么好东西。
aaaa3105563 2009-04-26
  • 打赏
  • 举报
回复
编辑器·········
thinkboy234 2009-04-25
  • 打赏
  • 举报
回复
同意四楼的 cout把数据压入栈 是从左往右 一次压入 然后出栈时 自然就从右往左了
deltamaster 2009-04-25
  • 打赏
  • 举报
回复
抱歉,据我了解的<<符是从左向右结合的。
cout通过<<符与右值表达式完成输出过程,并返回一个cout,这样才能实现连续<<运算。
对吗?
yuhongpingimu 2009-04-25
  • 打赏
  • 举报
回复
你用的什么编译器在?我的是
3 3 3
3 3
deltamaster 2009-04-25
  • 打赏
  • 举报
回复
第四个帖子看不到,回复一下。
onlinewan 2009-04-25
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 deltamaster 的回复:]
引用 1 楼 onlinewan 的回复:
因为cout是从右向左输出的

乱讲。
[/Quote]

哈哈,打太快,描述错误,不好意思
我的意思是:cout参数入栈的顺序是从右到左,输出又是从栈顶开始,所以会有楼主描述的现象。
deltamaster 2009-04-25
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 onlinewan 的回复:]
因为cout是从右向左输出的
[/Quote]
乱讲。
deltamaster 2009-04-25
  • 打赏
  • 举报
回复
我的运行结果是
3 3 3
3 3
onlinewan 2009-04-25
  • 打赏
  • 举报
回复
因为cout是从右向左输出的

65,211

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧