首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

一路c++题目求解

2012-10-15 
一道c++题目求解~#includeiostreamusing namespace stdvoid main(){struct num{int x,y}sa[]{{2,32},

一道c++题目求解~
#include<iostream>
using namespace std;
void main()
{
struct num
{
int x,y;
}sa[]={{2,32},{8,16},{4,48}};
struct num *p=sa+1;
int x;
x=p->y/sa[0].x*++p->x;
cout<<"x="<<x<<" p->x="<<p->x<<endl;
}



最后答案是x=72 p->x=9
可是x不是这样计算的么:x=16/2*4=32,p->x=4?

[解决办法]
楼主自己蒙了吧。p现在指向了第二个元素了。p->x=8,p->y=16.计算式是这样的:x=(16)/(2)*(9).为什么是9?因为++的优先级低于->所以是先取数据元后进行++
[解决办法]
主要考虑的是优先级
++p->x;
到底是先++还是先取数据。
先用后加一 8*9
[解决办法]
明显是优先级问题
->优先级高于*,所以p->x = 8;
再++等于9
[解决办法]
优先级的问题

热点排行