标题:大家好!我是”本宝宝有毒“
只看楼主
苯宝宝有毒
Rank: 2
等 级:论坛游民
帖 子:15
专家分:20
注 册:2016-5-7
结帖率:66.67%
已结贴  问题点数:20 回复次数:6 
大家好!我是”本宝宝有毒“
过程能搞懂,但还是想知道道理。求讲解。
程序代码:
#include <stdio.h>
int main()
{
    int i=1,j=1,k=0;
    k=(i+++j);
    printf("%d\n%d\n%d\n",i,j,k);
    return 0;
}
搜索更多相关主题的帖子: 宝宝 
2016-07-11 15:17
平常心q
Rank: 7Rank: 7Rank: 7
等 级:黑侠
威 望:7
帖 子:120
专家分:550
注 册:2016-3-31
得分:4 
C语言在词法分析上有一个很简单的规则,即每一个符号应该包括尽可能都的字符,这被称为“大嘴原则”。

比如:a+++++b会被分解成((a++)++)+b,但a++不能作为左值,因此a+++++b是非法的。

希望可以帮到你!
2016-07-11 15:53
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:432
帖 子:10064
专家分:41463
注 册:2014-5-20
得分:4 
k=(i++ + j);
这样写不好吗?
2016-07-11 16:17
弟大勿勃
Rank: 2
等 级:论坛游民
帖 子:186
专家分:59
注 册:2014-4-17
得分:4 
回复 3楼 吹水佬
k=i+(++j);不可以吗?
2016-07-11 16:45
linlulu001
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:贵宾
威 望:20
帖 子:944
专家分:4047
注 册:2016-4-13
得分:4 
回复 4楼 弟大勿勃
i+++j自左向右运算,你说可以吗。
2016-07-11 16:56
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:432
帖 子:10064
专家分:41463
注 册:2014-5-20
得分:0 
以下是引用弟大勿勃在2016-7-11 16:45:26的发言:

k=i+(++j);不可以吗?

不是可不可以的问题,编译和执行结果自然明。
好的程序语句要尽量使人容易读懂,不只是给自己看。
2016-07-11 19:00
wanglianyi1
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:贵宾
威 望:14
帖 子:647
专家分:2067
注 册:2015-6-18
得分:4 
这种++,--的组合运算,说实话如果你自己清楚需要运算的顺序请自觉加上(),不管程序自己默认运算顺序是不是和你的想法一致,都希望能主动加上括号,人为的清楚的控制运算顺序,否则我个人觉得这种写法没有一点好处,自己读的费劲别人看的也费劲
2016-07-12 08:56



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-466835-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.719281 second(s), 7 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved