社区
C++ 语言
帖子详情
小指针输出问题
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
打赏
收藏
小指针输出问题
#include 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??
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用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是从右向左输出的
C语言中的
指针
输出
问题
本文探讨了C语言中
指针
输出
的
问题
,特别是在函数返回局部数组
指针
时的行为。通过对比不同的
输出
方式,揭示了
指针
不稳定性的原因,并对如何避免这类错误提供了建议。
c语言
指针
顺序
输出
,
指针
问题
,按顺序
输出
。。。
这篇博客讲述了作者在尝试使用刚学到的
指针
技巧解决一个四数比较
问题
时遇到的挑战。通过实例展示了如何通过
指针
交换元素来找出并
输出
四个输入数中最小的那个。阅读者可以借此理解
指针
在算法中的实际运用。
C++ char * 字符
指针
输出
问题
在学习C++时,遇到字符
指针
输出
时可能出现乱码,原因是`char*`被当作字符串处理,缺少结束符`
char *
输出
的
问题
,以及
指针
的
问题
本文讨论了在C++中使用`char *`进行
输出
时可能出现的误解,解释了为什么
指针
会自动加一导致
输出
不预期的内容。同时,文章提到了`char*`、`char[]`和`string`之间的转换,特别是关于`string`的`c_str()`函数的使用限制。最后,作者提醒读者需要注意
指针
所指向的位置,特别是在处理字符串拷贝函数时。
C++ char
指针
(字符
指针
)及其
输出
问题
本文介绍了C++中字符
指针
(char
指针
)的声明和使用,特别是作为字符串处理时的注意事项。通过示例代码展示了如何通过标准库函数`gets()`和`puts()`进行字符串的输入与
输出
,以及如何使用`getchar()`逐字符读取输入,避免了使用`cin`时只读取第一个字符的
问题
。文章强调了正确分配和释放内存的重要性,并提醒读者在处理字符串时注意数组的连续性。
C++ 语言
65,211
社区成员
250,514
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章