精华内容
下载资源
问答
  • 2020-04-01 19:05:47

    1、函数的定义

    C源程序是由函数组成的。最简单的程序有一个主函数 main(),但实用程序往往由多个函数组成,由 主函数调用其他函数,其他函数也可以互相调用。函数是C源程序的基本模块,程序的许多功能是通过对 函数模块的调用来实现的,学会编写和调用函数可以提高编程效率。

    函数的定义通常包含以下内容:

    类型 函数名(形参表说明) /*函数首部*/ 
    {
        
    说明语句 /*函数体*/ 
    执行语
    
    更多相关内容
  • C语言程序是由多个零件组合而成...C语言函数是什么在前面的学习中,我们知道在 main( ) 函数中可以通过 printf( ) 函数实现屏幕输出显示的功能,通过 scanf( ) 函数实现读取键盘输入信息的功能。另外,我们还可以使...

    C语言程序是由多个零件组合而成的,而函数就是最主要的组合零件。C语言程序的主体部分就是一个 main( ) 函数,它在 C语言程序中是必不可少的,每一个 C 程序都首先从 main( ) 函数开始执行。

    C语言函数是什么

    在前面的学习中,我们知道在 main( ) 函数中可以通过 printf( ) 函数实现屏幕输出显示的功能,通过 scanf( ) 函数实现读取键盘输入信息的功能。另外,我们还可以使用 abs(x)、sqrt(x) 等函数实现各种数学运算功能。

    这些都是由 C语言提供的库函数,我们在编程过程中直接拿来使用就可以了,不过在使用之前需要在程序开头部分,用#include引入包含这些库函数的头文件。

    此外,我们可以根据需要自己创建各种函数,称为自定义函数。

    而 C语言程序基本上就是用这些函数像搭积木一样搭建起来的(见图 1)。

    aefea0a9fe504edb91d2caf3a0be2a8b.gif

    图 1:像搭积木一样创建 C语言程序

    总结:函数可以理解为能够执行特定功能的“魔法盒”,将多个处理步骤集中在一起并且可能重复使用时可以使用函数。

    C语言函数定义

    函数的定义由多个部分构成(见图 2)。其一般格式如下:

    返回类型 函数名 (形参声明) //函数头

    {

    函数体; //一条或多条 C 语句

    }

    下面的代码定义了一个函数 Max2,其功能是接收两个整数,返回较大的值:

    int Max2 ( int a, int b )

    {

    if(a>b)

    return a;

    else

    return b;

    }

    函数头部分包含函数的返回类型、函数名以及一个或多个形式参数(简称形参)。它指出了该函数的使用方法(函数调用的形式)。

    一般函数都会返回一个值(return 后面跟随的值),这个返回值的数据类型,就是函数的返回类型。也有一些函数没有返回值,只是执行一些具体的操作(比如打印输出等),这些没有返回值的函数在定义时其返回类型为 void 型(见图 2)。

    a0a0f832381ae836122f36a6e28e2af1.gif

    图 2:函数的定义

    函数头部分中用小括号括起来的,是函数需要接收的变量的声明,即形式参数(简称形参)声明,多个形参用逗号分隔。也有不接收任何形参的函数,此时,在小括号中需写入 void。

    函数体部分是用花括号{ }括起来的复合语句。仅在某函数内部使用的变量,应在该函数的函数体中声明和使用。

    return 表示从被调函数返回到主函数继续执行,它后面跟随的就是函数返回值。

    知识点总结

    返回类型、函数名、形参统称为函数头;

    函数由返回类型、函数名、形参和函数体四部分构成;

    形参是函数定义时声明的用于接收数据(值)的特定变量。

    展开全文
  • C语言函数定义(C语言自定义函数)

    千次阅读 2021-04-10 15:36:58
    将代码段封装成函数的过程叫做函数定义C语言无参函数的定义 如果函数不接收用户传递的数据,那么定义时可以不带参数。如下所示: dataType functionName(){ //body } dataType 是返回值类型,它可以是C语言中的...

    函数是一段可以重复使用的代码,用来独立地完成某个功能,它可以接收用户传递的数据,也可以不接收。接收用户数据的函数在定义时要指明参数,不接收用户数据的不需要指明,根据这一点可以将函数分为有参函数无参函数

    将代码段封装成函数的过程叫做函数定义

    C语言无参函数的定义
    如果函数不接收用户传递的数据,那么定义时可以不带参数。如下所示:

    dataType functionName(){
    //body
    }

    dataType 是返回值类型,它可以是C语言中的任意数据类型,例如 int、float、char 等。
    functionName 是函数名,它是标识符的一种,命名规则和标识符相同。函数名后面的括号( )不能少。
    body 是函数体,它是函数需要执行的代码,是函数的主体部分。即使只有一个语句,函数体也要由{ }包围。
    如果有返回值,在函数体中使用 return 语句返回。return 出来的数据的类型要和 dataType 一样。
    

    例如,定义一个函数,计算从 1 加到 100 的结果:

    int sum(){
        int i, sum=0;
        for(i=1; i<=100; i++){
            sum+=i;
        }
        return sum;
    }
    

    累加结果保存在变量sum中,最后通过return语句返回。sum 是 int 型,返回值也是 int 类型,它们一一对应。

    return是C语言中的一个关键字,只能用在函数中,用来返回处理结果。

    将上面的代码补充完整:

    #include <stdio.h>
    int sum(){
        int i, sum=0;
        for(i=1; i<=100; i++){
            sum+=i;
        }
        return sum;
    }
    int main(){
        int a = sum();
        printf("The sum is %d\n", a);
        return 0;
    }
    

    运行结果:
    The sum is 5050

    函数不能嵌套定义,main 也是一个函数定义,所以要将 sum 放在 main 外面。函数必须先定义后使用,所以 sum 要放在 main 前面。

    注意:main 是函数定义,不是函数调用。当可执行文件加载到内存后,系统从 main 函数开始执行,也就是说,系统会调用我们定义的 main 函数。
    

    无返回值函数
    有的函数不需要返回值,或者返回值类型不确定(很少见),那么可以用 void 表示,例如:

    void hello(){
        printf ("Hello,world \n");
        //没有返回值就不需要 return 语句
    }
    

    void是C语言中的一个关键字,表示“空类型”或“无类型”,绝大部分情况下也就意味着没有 return 语句。
    C语言有参函数的定义
    如果函数需要接收用户传递的数据,那么定义时就要带上参数。如下所示:

    dataType functionName( dataType1 param1, dataType2 param2 … ){
    //body
    }
    dataType1 param1, dataType2 param2 …是参数列表。函数可以只有一个参数,也可以有多个,多个参数之间由,分隔。参数本质上也是变量,定义时要指明类型和名称。与无参函数的定义相比,有参函数的定义仅仅是多了一个参数列表。

    数据通过参数传递到函数内部进行处理,处理完成以后再通过返回值告知函数外部。

    更改上面的例子,计算从 m 加到 n 的结果:

    int sum(int m, int n){
        int i, sum=0;
        for(i=m; i<=n; i++){
            sum+=i;
        }
        return sum;
    }
    

    参数列表中给出的参数可以在函数体中使用,使用方式和普通变量一样。

    调用 sum() 函数时,需要给它传递两份数据,一份传递给 m,一份传递给 n。你可以直接传递整数,例如:

    int result = sum(1, 100); //1传递给m,100传递给n
    也可以传递变量:

    int begin = 4;
    int end = 86;
    int result = sum(begin, end); //begin传递给m,end传递给n
    也可以整数和变量一起传递:

    int num = 33;
    int result = sum(num, 80); //num传递给m,80传递给n
    函数定义时给出的参数称为形式参数,简称形参;函数调用时给出的参数(也就是传递的数据)称为实际参数,简称实参。函数调用时,将实参的值传递给形参,相当于一次赋值操作。

    原则上讲,实参的类型和数目要与形参保持一致。如果能够进行自动类型转换,或者进行了强制类型转换,那么实参类型也可以不同于形参类型,例如将 int 类型的实参传递给 float 类型的形参就会发生自动类型转换。

    将上面的代码补充完整:

    #include <stdio.h>
    int sum(int m, int n){
        int i, sum=0;
        for(i=m; i<=n; i++){
            sum+=i;
        }
        return sum;
    }
    int main(){
        int begin = 5, end = 86;
        int result = sum(begin, end);
        printf("The sum from %d to %d is %d\n", begin, end, result);
        return 0;
    }
    

    运行结果:
    The sum from 5 to 86 is 3731

    定义 sum() 时,参数 m、n 的值都是未知的;调用 sum() 时,将 begin、end 的值分别传递给 m、n,这和给变量赋值的过程是一样的,它等价于:

    m = begin;
    n = end;

    函数不能嵌套定义
    强调一点,C语言不允许函数嵌套定义;也就是说,不能在一个函数中定义另外一个函数,必须在所有函数之外定义另外一个函数。main() 也是一个函数定义,也不能在 main() 函数内部定义新函数。

    下面的例子是错误的:

    #include <stdio.h>
    void func1(){
        printf("http://c.biancheng.net");
        void func2(){
            printf("C语言小白变怪兽");
        }
    }
    int main(){
        func1();
        return 0;
    }
    

    有些初学者认为,在 func1() 内部定义 func2(),那么调用 func1() 时也就调用了 func2(),这是错误的。

    正确的写法应该是这样的:

    #include <stdio.h>
    void func2(){
        printf("C语言小白变怪兽");
    }
    void func1(){
        printf("http://c.biancheng.net");
        func2();
    }
    int main(){
        func1();
        return 0;
    }
    

    func1()、func2()、main() 三个函数是平行的,谁也不能位于谁的内部,要想达到「调用 func1() 时也调用 func2()」的目的,必须将 func2() 定义在 func1() 外面,并在 func1() 内部调用 func2()。

    有些编程语言是允许函数嵌套定义的,例如 JavaScript,在 JavaScript 中经常会使用函数的嵌套定义。
    

    注:此文章转载自:C语言中文网:http://c.biancheng.net/view/1851.html

    展开全文
  • 一、无参函数定义形式类型标识符 函数名(){声明部分语句}其中类型标识符和函数名称为函数头。类型标识符指明了本函数的类型,函数的类型实际上是函数返回值的类型。该类型标识符与前面介绍的各种说明符相同。函数...

    一、无参函数的定义形式

    类型标识符 函数名()

    {

    声明部分

    语句

    }

    其中类型标识符和函数名称为函数头。类型标识符指明了本函数的类型,函数的类型实际上是函数返回值的类型。该类型标识符与前面介绍的各种说明符相同。函数名是由用户定义的标识符,函数名后有一个空括号,其中无参数,但括号不可少。

    {}中的内容称为函数体。在函数体中声明部分,是对函数体内部所用到的变量的类型说明。

    在很多情况下都不要求无参函数有返回值,此时函数类型符可以写为void。

    我们可以改写一个函数定义:

    void Hello()

    {

    printf ('Hello,world \n');

    }

    这里,只把main改为Hello作为函数名,其余不变。Hello函数是一个无参函数,当被其它函数调用时,输出Hello world字符串。

    二、有参函数定义的一般形式

    类型标识符 函数名(形式参数表列)

    {

    声明部分

    语句

    }

    有参函数比无参函数多了一个内容,即形式参数表列。在形参表中给出的参数称为形式参数,它们可以是各种类型的变量,各参数之间用逗号间隔。在进行函数调用时,主调函数将赋予这些形式参数实际的值。形参既然是变量,必须在形参表中给出形参的类型说明。

    例如,定义一个函数,用于求两个数中的大数,可写为:

    int max(int a, int b)

    {

    if (a>b) return a;

    else return b;

    }

    第一行说明max函数是一个整型函数,其返回的函数值是一个整数。形参为a,b,均为整型量。a,b的具体值是由主调函数在调用时传送过来的。在{}中的函数体内,除形参外没有使用其它变量,因此只有语句而没有声明部分。在max函数体中的return语句是把a(或b)的值作为函数的值返回给主调函数。有返回值函数中至少应有一个return语句。

    在C程序中,一个函数的定义可以放在任意位置,既可放在主函数main之前,也可放在main之后。例如:可把max 函数置在main之后,也可以把它放在main之前。修改后的程序如下所示。

    【例8.1】

    int max(int a,int b)

    {

    if(a>b)return a;

    else return b;

    }

    main()

    {

    int max(int a,int b);

    int x,y,z;

    printf('input two numbers:\n');

    scanf('%d%d',&x,&y);

    z=max(x,y);

    printf('maxmum=%d',z);

    }

    现在我们可以从函数定义、函数说明及函数调用的角度来分析整个程序,从中进一步了解函数的各种特点。

    程序的第1行至第5行为max函数定义。进入主函数后,因为准备调用max函数,故先对max函数进行说明(程序第8行)。函数定义和函数说明并不是一回事,在后面还要专门讨论。 可以看出函数说明与函数定义中的函数头部分相同,但是末尾要加分号。程序第12 行为调用max函数,并把x, y中的值传送给max的形参a, b。max函数执行的结果(a或b)将返回给变量z。最后由主函数输出z的值。

    原文链接:http://www.zhfrog.com/index.php/archives/2111

    0

    展开全文
  • 要写好C语言,漂亮的宏定义是非常重要的。宏定义可以帮助我们防止出错,提高代码的可移植性和可读性等。
  • C语言函数定义

    2021-05-20 03:30:29
    C语言函数定义引导语:函数表示每个输入值对应唯一输出值的一种对应关系。这种关系使一个集合里的每一个元素对应到另一个(可能相同的)集合里的唯一元素。以下是百分网小编分享给大家的C语言函数定义,欢迎参考...
  • C语言函数定义与使用

    千次阅读 2021-05-22 02:06:45
    C语言函数定义与使用》由会员分享,可在线阅读,更多相关《C语言函数定义与使用(5页珍藏版)》请在人人文库网上搜索。1、讲义十三 C语言函数定义与使用一、函数的定义:1、函数的定义:返回类型 函数名(参数...
  • C语言函数定义和声明

    万次阅读 多人点赞 2019-08-08 14:38:17
    本科学C语言的时候,就对函数定义和声明的作用很迷糊,刚看到一篇博客,写得非常清楚,贴出来与各位共享! 一、函数的声明 1.在C语言中,函数定义顺序是有讲究的:默认情况下,只有后面定义函数才可以调用...
  • C语言函数定义与函数声明

    千次阅读 2022-03-31 17:10:31
    C语⾔不同于Java语⾔,在Java语⾔中,在⼀个类中,定义函数/⽅法后,在调用时不需要声明,在C语言定义函数后,在使用前,需要在main函数前进行声明,否则报错。
  • c语言函数的调用

    千次阅读 2021-05-24 01:45:26
    函数三要素函数名 形参列表 函数体2. 如何调用函数?函数名();3.函数体内容书写一定要谨慎bug 是编程常用 出现了问题函数哪里需要哪里都可以调用声明一个函数 求两个数的和*/#include add(int a,int b){printf("%d \...
  • C语言函数定义和调用

    千次阅读 2020-03-30 19:22:56
    一、定义函数 定义一个函数我们需要确定三部分内容: 1.函数的返回值类型 2.函数的名称 3.函数的参数 确定了以上内容后就可以定义一个特有功能的函数了: int wrongplus(int a, int b) { a = a + 1; b = b + 1; ...
  • 动态申请内存和释放内存 多维数组 动态定义数组
  • 欢迎阅读 1 单选题 在下列关于 C 函数定义的叙述中正确的是 A 函数可以嵌套定义但不可以嵌套调用 B 函数不可以嵌套定义但可以嵌套调用 C 函数不可以嵌套定义也不可以嵌套调用 D 函数可以嵌套定义也可以嵌套调用 我的...
  • C语言基础:函数定义与调用

    千次阅读 2021-05-22 05:42:31
    在前面内容中我们调用了一个标准C的库函数,叫printf,那么如果我们想自己定义函数应该如何来编写程序呢?定义函数又有什么好处呢?因为我们在教材中提及到的例子主要目的是为了让读者对程序的原理有一定的了解,...
  • 一:定义 二:函数的一般形式 组成部分 1.返回类型 2.函数名称 注意: 3.参数 4.函数主体 实例: 三:函数声明 补充: 四:调用函数 实例: 五:函数参数 六:内部函数&外部函数&内联函数 1....
  • C语言函数

    千次阅读 2019-06-05 09:57:43
    函数 ...函数定义 1.1 函数的三要素 函数名 形参列表 函数函数名:标识符 形参列表: 不赋值的变量 函数体: 最主要(函数的要做什么) {}函数的作用域 (范围) 1.2 函数声明的时候要注意点 ...
  • C语言函数库详解(收藏版)感觉还是比较实用的,作为手册需要时可以查一查各种函数的具体定义和使用方法示例,十分方便的。
  • C语言函数定义和声明。

    千次阅读 多人点赞 2018-05-15 22:22:24
    函数体就是一个代码块,它在函数被调用时执行,与函数定义相反的是,函数声明出现在函数被调用的地方。函数声明向编译器提供该函数的相关信息,用于确保函数被正确的调用。 那么函数到底是如何定义的呢?请看下面的...
  • c语言函数指针的定义和使用

    千次阅读 2020-02-12 17:37:35
    1、定义函数返回值类型 (* 指针变量名) (函数参数列表); 例如:int (*func)(int,int); //类比:定义一个指针变量: int *p; 另外,还可以使用typedef来定义函数指针 例如: typedef void (*func) (void); //...
  • 2.函数定义:必须实现这个函数的功能 五.猜你喜欢 零基础 C/C++ 学习路线推荐 : C/C++ 学习目录 >> C 语言基础入门 一.简介 C 语言中的函数是一段可以重复使用的代码,用来独立地完成某个功能,它可以...
  • C语言函数的参数

    千次阅读 多人点赞 2019-03-21 23:07:27
    一、函数的参数可以是变量、变量指针和变量引用: void funcA(int8_t x) { x=x+1; } 代码说明:该函数的参数属于值传递,在调用该函数时,仅仅只是把实参的值拷贝了一份赋值给了形参x,之后的任何操作都不会影响到...
  • C语言函数定义和函数声明

    万次阅读 多人点赞 2017-11-10 10:04:18
    C语言不同于Java语言,在Java语言中,在一个类中,定义函数/方法后,在调用时不需要声明。在C语言定义函数后,在使用前,需要在main函数前进行声明,否则会报错。 #include //使用函数前,需要在main函数前对...
  • 实际上,如果在函数调用前,没有对函数作声明,则编译系统会吧第一次遇到的该函数的形式(函数定义或者函数调用)作为函数的声明,并将函数默认值类型认为int型 比如有您调用的是void max(int a,int b)系统就会把该...
  • 函数(一)----- 函数定义、调用及一些函数的例子
  • C语言定义带默认参数的函数

    千次阅读 2021-11-21 23:57:50
    我们之前介绍过可变参数宏与逗号运算符,将两者相结合的话可以定义出以下形式的宏: #define func(...) __func((default, ##__VA_ARGS__)) 当在func()里不填写任何内容的时候,正常情况下宏展开后会是func((default...
  • C语言函数指针使用

    千次阅读 2021-02-23 09:24:10
    如果在程序中定义了一个函数,那么在编译时系统就会为这个函数代码分配一段存储空间,这段存储空间的首地址称为这个函数的地址。而且函数名表示的就是这个地址。既然是地址我们就可以定义一个指针变量来存放,这个...
  • 文章目录@[TOC](文章目录)一、C语言函数的分类二、函数的参数及调用三、函数的嵌套调用和链式访问四、函数的声名和定义 一、C语言函数的分类 库函数 自定义函数 库函数:在开发的过程中,每个程序员都可能用...
  • C语言函数定义时前加static 作用

    千次阅读 2020-06-30 09:57:11
    C语言函数定义时前加static 作用 1.作用 函数中加“static”的含义不是指存储方式,而是指对函数的作用域仅局限于本文件。 2.好处 使用内部函数的好处是:不同的人编写不同的函数时,不用担心自己定义的函数,...
  • C语言定义用法大全

    2018-06-11 22:12:36
    关于C语言定义的用法,作了一个总结,除了常用宏定义外,还有类似函数的宏的用法

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 476,825
精华内容 190,730
关键字:

c语言函数定义