序列点与自增运算符的初级问题
如图,如何用序列点来解释结果呢逗号是序列点,c+1 是个完整表达式,这样理解对吗
那++a 和 b++ 又该如何解释呢 ++a:第一个+表示1?
b++:第二个+表示1?
以上为个人观点,是否正确有待考证
百度说法:https://zhidao.baidu.com/question/149550117.html weiter 发表于 2020-12-27 19:25
++a:第一个+表示1?
b++:第二个+表示1?
以上为个人观点,是否正确有待考证
能否用序列点解释下呢{:10_302:} minamikotori 发表于 2020-12-27 19:30
能否用序列点解释下呢
我没有深入学习……我只学到了数据类型那一块前面一点……{:10_266:} 我……评分用完了{:10_266:}剩下五鱼币还不回去{:10_266:} weiter 发表于 2020-12-27 19:30
我没有深入学习……我只学到了数据类型那一块前面一点……
{:10_278:} minamikotori 发表于 2020-12-27 19:32
这学习就很不深入对吧……{:10_278:} weiter 发表于 2020-12-27 19:32
我……评分用完了剩下五鱼币还不回去
没事 我鱼币不怎么缺 ++ a 与 a ++ 的区别是,前者先执行 a = a + 1,然后才引用,后者先引用,再执行 a = a + 1
假设a = 5 则:
printf("%d" , ++ a) ;
等效于
a = a + 1 ;// a = 6
printf("%d" , a) ;// 打印数值 6,
而
printf("%d" , a ++) ;
等效于
printf("%d" , a) ;// 打印数值 5
a = a + 1 ;// a = 6 本帖最后由 minamikotori 于 2020-12-27 19:38 编辑
c语言不是没有定义这样的行为吗,cpp中提到赋值运算符、递增运算符和递减运算
符对运算对象做的改变必须在程序执行下一条语句之前完成。 jackz007 发表于 2020-12-27 19:33
++ a 与 a ++ 的区别是,前者先执行 a = a + 1,然后才引用,后者先引用,再执行 a = a + 1
...
c语言不是没有定义这样的行为吗?,cpp中提到赋值运算符、递增运算符和递减运算
符对运算对象做的改变必须在程序执行下一条语句之前完成 minamikotori 发表于 2020-12-27 19:39
c语言不是没有定义这样的行为吗?,cpp中提到赋值运算符、递增运算符和递减运算
符对运算对象做的改变 ...
你根据什么这么说?自增自减运算是 C 语言与生俱来的东西,从它诞生的那一刻起,就一直都有! jackz007 发表于 2020-12-27 19:48
你根据什么这么说?自增自减运算是 C 语言与生俱来的东西,从它诞生的那一刻起,就一直都有!
是有这个运算符,但 Cprimer Plus 这本c语言的书籍中提到 c语言未规定他们运算顺序,类似x=(4+y++)+(6+y++)这种
不过还是谢谢你了
页:
[1]