我正在读K&R书,第63页有一行
while (--lim > 0 && (c=getchar()) != EOF && c != '\n')
其中 lim 是等于 1000 的 int
我的问题是,为什么lim在随后运行 while 循环后不会减少吗?
照我看来,--lim相当于“lim = lim - 1”
=================================================== =================
感谢所有的答案 !
--lim
意思是“从值中取一个lim
并使用结果”。
另一种选择lim--
将是“使用lim
然后拿走一个”。
So if lim
从 1000 开始,第一次循环执行时它将具有该值999
在检查它是否大于 0 之前。如果是lim--
那么要检查的值将是1000
,但在循环迭代结束时它的值仍为 999。这在循环的开始和结束时很重要。
MSDN 对此有一个页面前缀自增和自减运算符 http://msdn.microsoft.com/en-us/library/6syyw3ba%28v=VS.100%29.aspx
当运算符出现在其操作数之前时,操作数将递增或递减,其新值就是表达式的结果。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)