这个问题没有意义.因为 "C++语言规范并未规定函数的参数计算顺序, 由编译器自行决定".也就是说, 你的第一个printf中, 编译器有可能先计算a = 2*b, 也有可能先计算b =a+b.所以不同编译器答案会不一样, 同样的编译器优化级别不同也可能不一样.之所以这么做, 是考虑到给予编译器足够的优化空间, 以提升程序效率.像是Java会严格规定参数的计算顺序, 但是大部分语言包括C/C++都不会.应此像这种一句话里面同一个变量多次改变的语句在C++中不要写, 计算结果可能会很奇怪.....
|