- 注册时间
- 2005-1-21
- 最后登录
- 1970-1-1
|
在c语言中,函数传递实参时要计算出表达式的值,然后传递数值。
在计算顺序上Lava、Lavo和C的不同,请注意!
这是C的代码
#include <stdio.h>
void fcall(int i,int j,int k){
printf("%d,%d,%d\n",i,j,k);
printf("%d,%d,%d\n",++i,i++,i);
getchar();
}
void main(){
int i;
i=0;
fcall(++i,++i,++i);
}
这是Lava和Lavo的
void fcall(int i,int j,int k){
SetScreen(0);
printf("%d,%d,%d\n",i,j,k);
printf("%d,%d,%d\n",++i,i++,i);
getchar();
}
void main(){
int i;
i=0;
fcall(++i,++i,++i);
}
可是运行结果是c的
3,2,1
5,3,3
而Lava的是
1,2,3
2,2,3
可见,c是从右到左求值,Lava和Lavo是从左到右求值
|
|