#include <iostream.h>
void main()
{ int a[]={2,4,6,8,10};
int *p=a;
int i;
p=a;
cout<<(*p)++<<*(p++)<<endl;
for(i=0;i<5;i++)
cout<<a[i]<<" ";
}
输出的结果为什么是
42
2 5 6 8 10
一个简单的C++程序
答案:2 悬赏:40 手机版
解决时间 2021-05-19 01:28
- 提问者网友:謫仙
- 2021-05-18 01:15
最佳答案
- 五星知识达人网友:逐風
- 2021-05-18 01:32
如果不拆开cout,道理是一样的,只不过
cout<<(*p)++<<*(p++)<<endl;
这一句,是先计算括号里内容(即,先计算*p和p++),再计算*(p++),再计算(*p)++。
初始p为a[0]的地址,(*p)为2,然后p++之后p指向a[1],输出4,然后a[1]++,a[1]变成5,输出2。
因此结果是
42
2 5 6 8 10
拆开cout那么结果为:
23
3 4 6 8 10 Press any key to continue
1
cout<<(*p)++<<*(p++)<<endl;
这一句,是先计算括号里内容(即,先计算*p和p++),再计算*(p++),再计算(*p)++。
初始p为a[0]的地址,(*p)为2,然后p++之后p指向a[1],输出4,然后a[1]++,a[1]变成5,输出2。
因此结果是
42
2 5 6 8 10
拆开cout那么结果为:
23
3 4 6 8 10 Press any key to continue
1
全部回答
- 1楼网友:有你哪都是故乡
- 2021-05-18 03:04
不同编译器结果不一样的,这个没必要在意,也没有研究的价值
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯