C语言中a=i++中为什么是先对a赋i值?按照优先级原则,++不是在=前面吗?

2025-03-23 07:54:44
推荐回答(4个)
回答(1):

一直以来,++ --语法浪费了太多人的时间。说句实在话,++ -- 在C语言中其实是一个很细节的语法,除了表达简练外,真的没有什么其它的好处了。
由于中国的C语言教程长期以来被谭浩强主宰,而谭又错误的把++ --作为一个C语言重点来教,并增加了一些难点,把本来很简单的语法,搞得复杂无比!

简单的来说,++i 和 i++,在单独使用时,就是 i=i+1。
而 a = ++i,相当于 i=i+1; a = i;
而 a = i++,相当于 a = i; i=i+1;

如果实在搞不明白++ --怎么回事,那也不是什么天塌下来的事。
因为a=++i完全可以写成 i++; a=i。
a=i++完全可以写成 a=i; i++。
而且,这也是一种好的程序风格:++ -- 语句如非特殊需要,请单独一行使用。

回答(2):

孩子,加加减减运算符是每个初学者都会遇到的难题。

++i和i++是有区别的。随便举个例子:int b, a = 1; b = a++; 这里 如果printf b的话,是1,执行完 b = a++这一句之后a才变成2;如果是++i就是b等于2,a也等于2.

这回你懂了吧。满意请采纳,谢谢

回答(3):

没一个看懂提问者的意思,他是问根据运算符的优先级,++优先与赋值号=,应该是先i++再赋值给a,而实际是先赋值a=i,再i++,这违背了运算符的优先级,我也想问这个问题的。要是就是书中说的运算优先级说的不严谨还是其他什么原因。

回答(4):

会先对a进行赋值,然后i再自增
因为上述语句造价于:a=i;i++;