【摘要】:这种方式要求函数是有返回值的。这种情况是把该函数的返回值作为实参进行传送,因此要求该函数必须是有返回值的。在函数调用中还应该注意的一个问题是求值顺序的问题。介绍printf函数时已提到过,这里从函数调用的角度再强调一下。由于Turbo C规定是自右至左求值,所以结果为8,7,7,8。
在C语言中,可以用以下几种方式调用函数:
①函数表达式:函数作为表达式中的一项出现在表达式中,以函数返回值参与表达式的运算。这种方式要求函数是有返回值的。例如:z=max(x,y)是一个赋值表达式,把max的返回值赋予变量z。
②函数语句:函数调用的一般形式加上分号即构成函数语句。例如:printf("%d", a);,scanf("%d",&b);都是以函数语句的方式调用函数。
③函数实参:函数作为另一个函数调用的实际参数出现。这种情况是把该函数的返回值作为实参进行传送,因此要求该函数必须是有返回值的。例如:printf("%d",max(x,y));即是把max调用的返回值又作为printf函数的实参来使用的。
在函数调用中还应该注意的一个问题是求值顺序的问题。所谓求值顺序,是指对实参表中各量是自左至右使用还是自右至左使用。对此,各系统的规定不一定相同。介绍printf函数时已提到过,这里从函数调用的角度再强调一下。
【例8.3】
main()
{ inti=8;
printf("%d\n%d\n%d\n%d\n",++i,--i,i++,i--);
}
如按照从右至左的顺序求值,运行结果应为:
8
7
7
8
如对printf语句中的++i,--i,i++,i--从左至右求值,结果应为:
9
8
8
9
应特别注意的是,无论是从左至右求值还是自右至左求值,其输出顺序都是不变的,即输出顺序总是和实参表中实参的顺序相同。由于Turbo C规定是自右至左求值,所以结果为8,7,7,8。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。