函数的调用(初学者)

1、一般形式:函数名(实参表列)

若调用无参函数,则“实参表列”可以没有,但括弧不能省略。

若实参表列包含多个实参,则各参数间用逗号隔开,实参与形参个数应相等,类型应匹配。实参与形参按顺序对应,一一传递数据。

注:若实参表列包含多个实参,对实参求值的顺序不是确定的,有的系统按自左至右顺序求实参的值,有的系统按自右向左。

程序:(判断系统是自左向右还是自右向左)

#include <stdafx.h>
#include<stdio.h>

void main()
{
    int f(int a,int b);/*函数声明*/
    int i=2,p;
    p=f(i,++i); /*函数调用*/
    printf("%d\n",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(2,3),若自右向左则相当于f(3,3)。

2、函数的调用方式

按函数在程序中出现的位置来分,可以有以下三种函数调用方式:

(1)函数语句

把函数调用作为一个语句,不要求函数带回值,只要求函数完成一定的操作。

(2)函数表达式

函数出现在一个表达式中,这种表达式称为函数表达式。这时要求函数带回一个确定的值以参加表达式的运算。例如:c=2*max(a,b);

(3)函数参数

函数调用作为一个函数的实参。

例:m=max(a,max(b,c));

其中max(b,c)是一次函数调用,它的值作为max另一次调用的实参。m的值是a,b,c三者中的最大值。

3、被调用函数的声明和函数原型

(1)被调用的函数必须是已经存在的函数。

(2)若使用库函数,还应在本文件开头用#include命令将调用有关库函数时所需要用到的信息“包含”到本文件中来。

(3)若使用用户自己定义的函数,而该函数的位置在调用它的函数(即主调函数)的后面,应在主调函数中对被调函数作声明。

4、关键词

声明:声明一词原为delaration,过去译为“说明”。

声明的作用:把函数名和函数参数的个数,以及参数类型等信息通知编译系统,以便在遇到函数调用时,编译系统能正确识别函数并检查调用是否合法。(不占内存)

函数的定义:是指对函数功能的确立,是一个完整的,独立的函数单位(占内存)。

注:区分函数的声明与定义。

例:

#include <stdafx.h>
#include<stdio.h>

void main()
{
    float add(float x,float y);
    float a,b,c;
    scanf("%f,%f",&a,&b);
    c=add(a,b);
    printf("sum is %f\n",c);
}

float add(float x,float y)
{
    float z;
    z=x+y;
    return z;
}

注:若被调用函数定义出现在主调函数之前,可以不必加以声明,因为编译器已先知道了已定义函数的有关情况,会根据函数首部提供的有关信息对函数的调用作正确性检查。

posted @ 2019-01-29 21:22  巫师笔记  阅读(2262)  评论(0编辑  收藏  举报