C++中,表达式 i+++j 怎么理解?

是(i++)+j?还是i+(++j)?... 是( i++)+j ? 还是 i+(++j) ? 展开
 我来答
蓝天拉拉
2014-03-23
知道答主
回答量:27
采纳率:0%
帮助的人:4.7万
展开全部
是( i++)+j
C/C++编译器在遇到符号时,总是一直将相邻的下一个操作符纳入当前解释的表达式中,除非新加入的操作符会使原本成立的表达式变成非法结果(贪婪性),例如这一例中,在读取i之后会读取第一个加号,此时一个加号是合法的,所以会继续读取下一个加号,之后判断发现两个加号也是合法的,所以继续读取第三个加号,此时发现三个加号的操作符是不合法的,不存在这样的操作符,于是不读取第三个加号,将i与前两个加号结合生成了i++的运算,第三个加号和后面的j则参与普通的加法运算。
匿名用户
2014-03-22
展开全部
i            ++          +           j
<标识符>     <运算符>    <运算符>    <标识符>

编译器读取的时候是贪婪的,只要从左到右能读入两个字符就不会只读入一个

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
veslit
2014-03-23
知道答主
回答量:18
采纳率:0%
帮助的人:9.7万
展开全部
上面两位网友的回答都是正确的。该表达式先执行i+j求和,然后对i的值进行++操作。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
流星不死
2014-03-22 · TA获得超过1662个赞
知道小有建树答主
回答量:1621
采纳率:0%
帮助的人:1317万
展开全部
#include<stdio.h>
void main()
{
int i = 10;
int j = 20;
printf("%d",i+++j);
printf("\ni=%d j=%d",i,j);
}

测试后 发现 等同于 ( i++)+j

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
王玉豆豆
2014-03-23
知道答主
回答量:9
采纳率:0%
帮助的人:10万
展开全部
是(i++)+j。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式