*iter++应该怎么理解?
答案:2 悬赏:10
解决时间 2021-02-16 08:43
- 提问者网友:长安小才冯
- 2021-02-15 23:26
C++Primer中文第四版第141页,写到了*iter++,返回的是iter自增前的解引用值。不太懂,求大神解答
最佳答案
- 二级知识专家网友:怪咖小青年
- 2021-02-16 00:09
在表达式中出现++,++操作总是在表达式运算完成后才进行。
如:
void main()
{
int a[2]={10,20};
int *pa=a;
int x,y;
x=*pa++;//相当于x=*pa; pa++;两条语句。
//运算完成后x=a[0]=10,pa指向+1,指向a[1]
y=(*pa)++;//相当于y=(*pa);(*pa)++;两条语句。
//运算完成后y=a[1]=20,pa指向不变,但指向的值+1,即a[1]=21
}
楼主参考。
如:
void main()
{
int a[2]={10,20};
int *pa=a;
int x,y;
x=*pa++;//相当于x=*pa; pa++;两条语句。
//运算完成后x=a[0]=10,pa指向+1,指向a[1]
y=(*pa)++;//相当于y=(*pa);(*pa)++;两条语句。
//运算完成后y=a[1]=20,pa指向不变,但指向的值+1,即a[1]=21
}
楼主参考。
全部回答
- 1楼网友:一池湖水
- 2021-02-16 01:39
应该根据运算符的规律进行理解,看是左结合的还是右结合的,如果书上的话是正确的,则该表达式可理解为*(iter++),因为表达式iter++返回的是增量前的值,注意是表达式的值,而不是iter的值
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯