Lok*_*son 7 c c++ arrays pre-increment post-increment
我有一个C程序,它是使用数组的队列操作。在该程序中,它们在数组内增加一个变量。我不明白那是怎么回事。因此,请解释以下操作:
array[++i];
array[i++];
Run Code Online (Sandbox Code Playgroud)
Log*_*uff 11
请解释这些操作。
array[++i];-首先递增i,然后在递增索引处给您元素
相当于:
++i; // or i++
array[i];
Run Code Online (Sandbox Code Playgroud)array[i++];-也首先递增i,但后缀在递增之前operator++返回i的值
相当于:
array[i];
++i; // or i++
Run Code Online (Sandbox Code Playgroud)它们在数组内部增加一个变量。
不,他们没有。您可以说它们i在对数组下标运算符的调用中增加。
评估之前的++i增量。i
该i++inrementsi 后评估它。
如果i=1然后array[++i]设置i=2然后获取array[2].
If i=1then array[i++]fetches array[1]then set i=2.
post- 和 pre- 操作发生在它们所涉及的表达式 is 评估之后或之前。
我通常不鼓励在表达式中使用 post 和 pre 增量运算符。它们最多会导致混乱,最坏的情况是会导致错误。
考虑什么 x = array[++i] + array[i--] ;应该是。看看混淆程序员(或必须修复您的代码的可怜的魔鬼?:-))是多么容易。
post 和 pre 递增和递减操作也会在宏中产生问题,因为您最终可能会多次复制操作,尤其是对于宏。
它更简单,更易于维护代码,以避免表达式中的 post 和 pre 增量,IMO。
| 归档时间: |
|
| 查看次数: |
10592 次 |
| 最近记录: |