[url]http://sunxiunan.com/?p=1628[/url]这个文章是专门讲这个的,其实我觉得一句话就可以讲清楚,就是编译器生成汇编时,对应生成的是地址而非值的,就是左值。
比如a = b;
变成汇编可能是mov xxx[xxx], ebx; ebx里是b的值。
这时的a和b都是一样的形式,但是b生成代码时,是生成的值内容,而a则是生成对应的地址。上面引的那篇文章不错,可惜后面陷于讨论奇怪代码细节了。
比如a = b;
变成汇编可能是mov xxx[xxx], ebx; ebx里是b的值。
这时的a和b都是一样的形式,但是b生成代码时,是生成的值内容,而a则是生成对应的地址。上面引的那篇文章不错,可惜后面陷于讨论奇怪代码细节了。