字体
第(4/5)页
关灯
   存书签 书架管理 返回目录
被定义为空类型后,就不能在主调函数中使用被调函数的函数值了。

    例如,在定义 s 为空类型后,在主函数中写下述语句

    sum=s(n);

    就是错误的。

    为了使程序有良好的可读xìng并减少出错, 凡不要求返回值的函数都应定义为

    空类型。

    8.4 函数的调用

    谭浩强      C 语言程序设计               2001 年 5 月 1 日

    8.4.1 函数调用的一般形式

    前面已经说过,在程序中是通过对函数的调用来执行函数体的,其过程与其它语言的子

    程序调用相似。

    C语言中,函数调用的一般形式为:

    函数名(实际参数表)

    对无参函数调用时则无实际参数表。实际参数表中的参数可以是常数,变量或其它构造

    类型数据及表达式。各实参之间用逗号分隔。

    8.4.2 函数调用的方式

    在C语言中,可以用以下几种方式调用函数:

    1. 函数表达式:函数作为表达式中的一项出现在表达式中,以函数返回值参与表达式的运

    算。这种方式要求函数是有返回值的。例如:z=max(x,y)是一个赋值表达式,把 max

    的返回值赋予变量 z。

    2. 函 数 语 句 : 函 数 调 用 的 一 般 形 式 加 上 分 号 即 构 成 函 数 语 句 。 例 如 :         printf

    ("%d",a);scanf ("%d",&b);都是以函数语句的方式调用函数。

    3. 函数实参:函数作为另一个函数调用的实际参数出现。这种情况是把该函数的返回值作

    为 实 参 进 行 传 送 , 因 此 要 求 该 函 数 必 须 是 有 返 回 值 的 。 例 如 :

    printf("%d",max(x,y));    即是把 max 调用的返回值又作为 printf 函数的实参来使

    用的。在函数调用中还应该注意的一个问题是求值顺序的问题。所谓求值顺序是指对实

    参表中各量是自左至右使用呢,还是自右至左使用。对此,各系统的规定不一定相同。

    介绍 printf 函数时已提到过,这里从函数调用的角度再强调一下。

    【例 8.3】

    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

    谭浩强      C 语言程序设计               2001 年 5 月 1 日

    应特别注意的是,无论是从左至右求值, 还是自右至左求值,其输出顺序都是不变的,

    即输出顺序总是和实参表中实参的顺序相同。由于 Turbo C 现定是自右至左求值,所以结果

    为 8,7,7,8。上述问题如还不理解,上机一试就明白了。

    8.4.3 
上一页 目录 下一页