我今天遇到了巫术.
语言: C
码:
#include <stdio.h>
main()
{
int i = 5;
i = i++;
printf ("%i", i);
}
Run Code Online (Sandbox Code Playgroud)
输出:
6
Run Code Online (Sandbox Code Playgroud)
怎么样?为什么?
这应该是棘手的代码,但反过来说.疏忽的程序员会认为这i = i++只是简单的增量,但事实并非如此.然而它在这里工作得像.它应该是5!就像在JavaScript中一样.
应该发生什么.
i得到的价值5.i++回报5.i后增加i++(到6).i获取5(返回i++)的值.i(5)的值被打印出来.但确实如此6.
我无法在SO或整个互联网上找到对此的描述(只是相反).
什么在这里打破?
请解释.
| 归档时间: |
|
| 查看次数: |
231 次 |
| 最近记录: |