关于不同语言的参数执行顺序问题

来源:互联网 发布:小学生必知科普知识 编辑:程序博客网 时间:2024/04/30 07:52

#include <cstdlib>#include <cstdio>#include <cstring>int t1() {    printf("t1\n");    return 1;}int t2() {    printf("t2\n");    return 2;}   void t3(int a, int b) {    printf("t3\n");    printf("#%d#%d\n", a, b);}   void t4() {    t3( t1(), t2() );}int main() {    t4();}

对于C、C++等,参数是从右往左进行解析的,结果:

wsdc@wsdc-server:~/Document/cpp$ ./test1 t2t1t3#1#2


对于Java,参数解析是从左往右进行的:

abstract class Test {public abstract void m1();public void solve(String a) {m1();System.out.println("in solve " + a);}}class TestImpl extends Test{public void m1() {System.out.println("m1");}public String t1() {System.out.println("t1");return "t1";}public String t2() {System.out.println("t2");return "t2";}public void t3(String a, String b) {System.out.println("#" + a + "#" + b);}public void t4() {t3(t1(), t2());}}public class Main {public static void main(String[] args) {new TestImpl().t4();}}

其执行结果是:

t1t2#t1#t2


0 0
原创粉丝点击