C语言中:a+++b是什么意思?

C语言中:a+++b是什么意思?a+++b等价于(a++)+b还是a+(++b)呢?还是跟编译器有关呢?为什么?... C语言中:a+++b是什么意思?
a+++b等价于(a++)+b还是a+(++b)呢?还是跟编译器有关呢?为什么?
展开
 我来答
帐号已注销
2020-11-18 · TA获得超过77.1万个赞
知道小有建树答主
回答量:4168
采纳率:93%
帮助的人:165万
展开全部

就近原则,与编译器无关。

要说在c语言中这充其量只能算作是“伪代码”。

在vb、pascal等程序设计语言中,<>是“不等于”的意思。

在c中,“不等于”的关系应表示为“!=”

if(a

!=

b+c)

printf("a不等于b+c\n");

else

printf("a等于b+c\n");

扩展资料:

C语言的运算符主要用于构成表达式,同一个符号在不同的表达式中,其作用并不一致。下面按计算的优先顺序,分别说明不同作用的表达式。需要特别指出,在C语言标准中,并没有结合性的说法。

相同优先级运算符,从左至右依次运算。注意后缀运算优先级高于前缀。因此++i++应解释为++(i++)。而与或非的运算优先级都不一样,因此a && b || b && c解释为(a && b) || (b && c),合理使用优先级可以极大简化表达式。

参考资料来源:百度百科-C语言运算符

湛蓝水晶
推荐于2017-11-27 · 知道合伙人数码行家
湛蓝水晶
知道合伙人数码行家
采纳数:1388 获赞数:9352
毕业北京科技大学数学与应用数学专业,学士学位,IT行业6年从业经验。现任公司项目经理。

向TA提问 私信TA
展开全部
就近原则,与编译器无关,很容易记的。
相当于(a++)+b;

但是太多+号就不行了,
比如a+++++b,虽然一看就知道意思是(a++)+(++b);但是编译就通不过,出错信息大概是:迷失在加号空间?
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
终西丰轶
2020-01-19 · TA获得超过3677个赞
知道大有可为答主
回答量:3042
采纳率:25%
帮助的人:198万
展开全部
C语言有个规则,就是每个符号应该包含尽可能多的字符。
所以编译器对代码的解析是这样的:
从左到右依次读入字符,并且尽可能多的包含字符,直到本次读入的所有字符不可能组成一个有意义的符号,那么停止读入,进入下一轮判断。
也就是说,a+++b+++c
会被解释为
(a++)+(b++)+c。
又因为++在变量之后代表先引用值后再自增,所以这个运算结果为a+b+c。
但是在实际开发中这种代码容易引起歧义,不推荐这种写法,可以直接用括号注明优先级。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百掣尹永福
2019-08-30 · TA获得超过3875个赞
知道大有可为答主
回答量:3050
采纳率:33%
帮助的人:237万
展开全部
先解释一下
+=

++
是什么意思+=
的意思是
左值和右值相加结果赋值给左值如
a=1;b=2;a+=b;后,a=3;b=2。++
的意思是变量自加1,如a=1;a++;a的值是2,在c中,++有前置和后置如
++a;a++;,单独使用的时候是没有区别的,都是自加1,在有运算时就有区别了,前置的++是自加后才参与运算,后置的++是参与运算后在自加1。如题的画,假定a=1,b=2,a+=b++的意思就是b=2先参与a+=b运算a=3,然后b自加1,b=3;如果b++换成前置++b,a+=++b就是b先自加1,b=4,然后参与a+=b运算,a=4。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
天曼安周圣
游戏玩家

2019-07-14 · 非著名电竞玩家
知道大有可为答主
回答量:1.1万
采纳率:33%
帮助的人:941万
展开全部
这是
(a%b)?b:a
其中
a%b

a除以b取馀数,
若不等於0
(也就是b不整除a)就当成立,
整个式子是取b的值.
若等於0
(也就是b整除a)就当不成立,
整个式子是取a的值.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(11)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式