zoukankan      html  css  js  c++  java
  • 函数的调用(初学者)

    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
    ",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
    ",c);
    }
    
    float add(float x,float y)
    {
        float z;
        z=x+y;
        return z;
    }

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

  • 相关阅读:
    第02组 Alpha冲刺(2/6)
    第02组 Alpha冲刺(1/6)
    第02组 团队Git现场编程实战
    第02组 团队项目-需求分析报告
    团队项目-选题报告
    第二次结对编程作业
    第一次结对编程作业
    第2组 团队展示(组长)
    Exchange 2013 中的 OAB (脱机通讯簿)以及如何管理
    vmware esxi 查看网卡、Raid卡驱动
  • 原文地址:https://www.cnblogs.com/lvfengkun/p/10335792.html
Copyright © 2011-2022 走看看