学了这么久的C语言,竟然第一次碰到这么诡异的实参求值顺序问题,大跌眼镜。果然阅读面太少了!
#include<iostream> void foo(int a, int b, int c) { std::cout<<a<<","<<b<<","<<c<<std::endl; //3,2,1 } int main() { int i=1; foo(i++,i++,i++); }
亦即C/C++求值顺序是从右到左。
学了这么久的C语言,竟然第一次碰到这么诡异的实参求值顺序问题,大跌眼镜。果然阅读面太少了!
#include<iostream> void foo(int a, int b, int c) { std::cout<<a<<","<<b<<","<<c<<std::endl; //3,2,1 } int main() { int i=1; foo(i++,i++,i++); }
亦即C/C++求值顺序是从右到左。
转载于:https://www.cnblogs.com/wangzhi/p/3385042.html