正在加载图片...
例参数求值顺序 #include <stdio.h> 按自右向左求值 void maino 按自左向右求值 函数调用等于(3){ int f(int a, int b);函数调用等于23) 运行结果:0 int i=2, p; 运行结果:-1 p=f(i, ++i printf(("%od"’,p), 需自右向左求值时, int f(int a, int b) 需自左向右求值时, 改为:j=++ i int c; 改为:j=i; =f(j,j); f(a>b)c=1: k=++i else if(a==b)c=0; p=f(, k); else c=-1 return(c) Printf(“%d,%d”i+);/同样存在此情况*Advanced Programming #include <stdio.h> void main() { int f(int a,int b); int i=2,p; p=f(i,++i); printf("%d",p); } int f(int a, int b) { int c; if(a>b) c=1; else if(a==b) c=0; else c=-1; return(c); } 例 参数求值顺序 按自右向左求值 函数调用等于f(3,3) 运行结果:0 按自左向右求值 函数调用等于f(2,3) 运行结果:- 1 为使程序有通用性: 需自右向左求值时, 改为:j=++i; p=f ( j , j ) ; 需自左向右求值时, 改为:j = i ; k = ++ i ; p = f ( j , k ) ; Printf(“%d,%d”,i,i++); /*同样存在此情况*/
<<向上翻页向下翻页>>
©2008-现在 cucdc.com 高等教育资讯网 版权所有