求各位大神进来瞧一下,感激不尽

yjiangling 2016-11-28 08:51:43
为什么写成一行就变成11和7了?不是应该都是7吗?(指针p指向a[3]?先输出a[3]=7啊?再输出(*p++),先输出*p也就是a[3]=7,然后p自增,指向下一个元素,也就是a[4],为什么不是这样呢?)有大神指导一下吗?感谢感谢!

程序代码
#include <iostream>

using namespace std;

static int a[]={1,3,5,7,11,13};
int main()
{
int *p;
p=a+3;
cout<<*p<<'\t'<<(*p++)<<endl;
}

运行截图如下:


但是输出分成两行写,运行结果就完全不一样了

#include <iostream>

using namespace std;

static int a[]={1,3,5,7,11,13};
int main()
{
int *p;
p=a+3;
cout<<*p<<'\t';
cout<<(*p++)<<endl;
}

运行结果就是预期的了


...全文
78 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
yjiangling 2016-11-28
  • 打赏
  • 举报
回复
噢,懂了,感谢指导!
  • 打赏
  • 举报
回复
cout在执行的时候为从右向左执行,然后在输出的时候为按照原来的顺序在从左向右输出

33,311

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 新手乐园
社区管理员
  • 新手乐园社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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