2)函数值的类型和函数定义中函数的类型应保持一致。 如果两者不一致,则以函数类型为准,自动进行类型 转换 int f(float x return x/2 main(printf(%d', f (3.6); 3 3)如函数值为整型,在函数定义时可以省去类型说明。 maino{}的前面省略了int。 戏实际上等价于 int maino{} 发4)不返回函数值的函数,可以明确定义为“空类型” 类型说明符为“void。如上例函数s并不向主函数返函 数值,因此可定义为: void s(int n) 注意:此时必须在main函数中添加对该函数的声明。 函数被定义空类型后,就不能在主调函数中使 用被调函数的函数值了。例如,在定文s为空类型后, 在主函数中写后述语句: sum=s(m)就是错误的
2) 函数值的类型和函数定义中函数的类型应保持一致。 如果两者不一致,则以函数类型为准,自动进行类型 转换。 int f(float x){return x/2;} main(){printf(“%d”,f(3.6));} 3) 如函数值为整型,在函数定义时可以省去类型说明。 main(){}的前面省略了int。 实际上等价于int main(){} 4) 不返回函数值的函数,可以明确定义为“空类型”, 类型说明符为“void”。如上例函数s并不向主函数返函 数值,因此可定义为: void s(int n) { …… } 注意:此时必须在main函数中添加对该函数的声明。 一旦函数被定义为空类型后,就不能在主调函数中使 用被调函数的函数值了。例如,在定义s为空类型后, 在主函数中写后述语句: sum=s(n);就是错误的
函数的调用 函数调用的一般形式:函数名(实际参数表) 兴函数调用的方式:用以下几种方式调用函数。 1函数表达式:例如:z=max(xy)是一个赋值表达式, 把max的返回值赋予变量z 数2函数语句:例如: printf("",a), scanf("%d",&b); 3函数实参:函数作为另一个函数调用的实际参数出现。 例如: printf("%d",max(xy) ※再次强调:在函数调用中还应该注意的一个问题是实 际参数的求值顺序的问题。所谓求值顺序是指对实 表中各参数是自左至右使用呢,还是自右至左使用
函数的调用 函数调用的一般形式: 函数名(实际参数表) 函数调用的方式:用以下几种方式调用函数。 1.函数表达式:例如:z=max(x,y)是一个赋值表达式, 把max的返回值赋予变量z。 2.函数语句:例如: printf ("%d",a);scanf ("%d",&b); 3.函数实参:函数作为另一个函数调用的实际参数出现。 例如:printf("%d",max(x,y)); 再次强调:在函数调用中还应该注意的一个问题是实 际参数的求值顺序的问题。所谓求值顺序是指对实参 表中各参数是自左至右使用呢,还是自右至左使用
【例】 戏 maino int 1=8 x printf("%din%odn%d\n%d\n" ++i-1, i++, i--) 如按照从右至左的顺序求值。运行结果应为 778 数如对 printf语句中的++i,-i,计++,i-从左至右求值,结果应为: 9889 兴Turb0C现定是自右至左求值,所以结果为8,7,7,8
【例】 main() { int i=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