精华内容
下载资源
问答
  • C语言定义函数指针(typedef)
    千次阅读
    2018-06-09 10:23:14
    #include <stdio.h>


    int add(int a, int b)
    {
        return (a + b);
    }

    int sub(int a, int b)
    {
        return (a - b);
    }

    //使用typedef给函数指针类型一个别名
    //typedef没有定义新的类型,给已经有的类型起一个别名,减少输入
    typedef int (*padd)(int a, int b);//*类型,padd存储函数地址
    typedef int (*psub)(int a, int b);//*类型,psub存储函数地址

    int main(int argc, char *argv[])
    {
        
    padd padd1 = add; //创建函数指针
    printf("%d\n", padd1(11, 19));

    psub psub1 = sub; //创建函数指针
    printf("%d\n", psub1(11, 19));


        return 0;
    }
    更多相关内容
  • c语言定义函数和声明函数 C语言中用户定义函数的类型 (Type of User-defined Functions in C) There can be 4 different types of user-defined functions, they are: 可以有4种不同类型的用户定义函数,它们是: ...

    c语言定义函数和声明函数

    There can be 4 different types of user-defined functions, they are:

    可以有4种不同类型的用户定义函数,它们是:

    1. Function with no arguments and no return value

      没有参数也没有返回值的函数

    2. Function with no arguments and a return value

      没有参数和返回值的函数

    3. Function with arguments and no return value

      有参数且无返回值的函数

    4. Function with arguments and a return value

      带参数和返回值的函数

    Below, we will discuss about all these types, along with program examples.

    下面,我们将讨论所有这些类型以及程序示例。

    没有参数也没有返回值的函数 (Function with no arguments and no return value)

    Such functions can either be used to display information or they are completely dependent on user inputs.

    这些功能可以用于显示信息,也可以完全取决于用户输入。

    Below is an example of a function, which takes 2 numbers as input from user, and display which is the greater number.

    下面是一个函数示例,该函数以2个数字作为用户输入,并显示较大的数字。

    #include<stdio.h>
    
    void greatNum();       // function declaration
    
    int main()
    {
        greatNum();        // function call
        return 0;
    }
    
    void greatNum()        // function definition
    {
        int i, j;
        printf("Enter 2 numbers that you want to compare...");
        scanf("%d%d", &i, &j);
        if(i > j) {
            printf("The greater number is: %d", i);
        }
        else {
            printf("The greater number is: %d", j);
        }
    }

    没有参数和返回值的函数 (Function with no arguments and a return value)

    We have modified the above example to make the function greatNum() return the number which is greater amongst the 2 input numbers.

    我们修改了上面的示例,以使函数greatNum()返回2个输入数字中较大的数字。

    #include<stdio.h>
    
    int greatNum();       // function declaration
    
    int main()
    {
        int result;
        result = greatNum();        // function call
        printf("The greater number is: %d", result);
        return 0;
    }
    
    int greatNum()        // function definition
    {
        int i, j, greaterNum;
        printf("Enter 2 numbers that you want to compare...");
        scanf("%d%d", &i, &j);
        if(i > j) {
            greaterNum = i;
        }
        else {
            greaterNum = j;
        }
        // returning the result
        return greaterNum;
    }

    有参数且无返回值的函数 (Function with arguments and no return value)

    We are using the same function as example again and again, to demonstrate that to solve a problem there can be many different ways.

    我们一次又一次地使用与示例相同的功能,以说明解决问题的方法有很多种。

    This time, we have modified the above example to make the function greatNum() take two int values as arguments, but it will not be returning anything.

    这次,我们修改了上面的示例,以使函数greatNum()接受两个int值作为参数,但不会返回任何内容。

    #include<stdio.h>
    
    void greatNum(int a, int b);       // function declaration
    
    int main()
    {
        int i, j;
        printf("Enter 2 numbers that you want to compare...");
        scanf("%d%d", &i, &j);
        greatNum(i, j);        // function call
        return 0;
    }
    
    void greatNum(int x, int y)        // function definition
    {
        if(x > y) {
            printf("The greater number is: %d", x);
        }
        else {
            printf("The greater number is: %d", y);
        }
    }

    带参数和返回值的函数 (Function with arguments and a return value)

    This is the best type, as this makes the function completely independent of inputs and outputs, and only the logic is defined inside the function body.

    这是最好的类型,因为这使函数完全独立于输入和输出,并且仅在函数体内定义了逻辑。

    #include<stdio.h>
    
    int greatNum(int a, int b);       // function declaration
    
    int main()
    {
        int i, j, result;
        printf("Enter 2 numbers that you want to compare...");
        scanf("%d%d", &i, &j);
        result = greatNum(i, j); // function call
        printf("The greater number is: %d", result);
        return 0;
    }
    
    int greatNum(int x, int y)        // function definition
    {
        if(x > y) {
            return x;
        }
        else {
            return y;
        }
    }

    功能嵌套 (Nesting of Functions)

    C language also allows nesting of functions i.e to use/call one function inside another function's body. We must be careful while using nested functions, because it may lead to infinite nesting.

    C语言还允许嵌套函数,即在另一个函数体内使用/调用一个函数。 使用嵌套函数时必须小心,因为它可能导致无限嵌套。

    function1()
    {
        // function1 body here
        
        function2();
        
        // function1 body here
    }

    If function2() also has a call for function1() inside it, then in that case, it will lead to an infinite nesting. They will keep calling each other and the program will never terminate.

    如果function2()中也有对function1()的调用,则在这种情况下,它将导致无限嵌套。 他们将继续互相调用,程序将永远不会终止。

    Not able to understand? Lets consider that inside the main() function, function1() is called and its execution starts, then inside function1(), we have a call for function2(), so the control of program will go to the function2(). But as function2() also has a call to function1() in its body, it will call function1(), which will again call function2(), and this will go on for infinite times, until you forcefully exit from program execution.

    听不懂? 让我们考虑一下在main()函数内部,调用了function1()并开始执行,然后在function1()内部,我们对function2()进行了调用,因此程序的控制权将移交给function2()。 但是由于function2()在其主体中也有对function1()的调用,它将调用function1(),后者将再次调用function2(),这将持续无数次,直到您强制退出程序执行为止。

    什么是递归? (What is Recursion?)

    Recursion is a special way of nesting functions, where a function calls itself inside it. We must have certain conditions in the function to break out of the recursion, otherwise recursion will occur infinite times.

    递归是嵌套函数的一种特殊方式,其中函数在其中调用自身。 函数必须具有一定的条件才能中断递归,否则递归将无限次发生。

    function1()
    {   
        // function1 body
        function1();
        // function1 body
    }

    示例:使用递归的阶乘 (Example: Factorial of a number using Recursion)

    #include<stdio.h>
    
    int factorial(int x);       //declaring the function
    
    void main()
    {
        int a, b;
        
        printf("Enter a number...");
        scanf("%d", &a);
        b = factorial(a);       //calling the function named factorial
        printf("%d", b);
    }
    
    int factorial(int x) //defining the function
    {
        int r = 1;
        if(x == 1) 
            return 1;
        else 
            r = x*factorial(x-1);       //recursion, since the function calls itself
        
        return r;
    }

    Similarly, there are many more applications of recursion in C language. Go to the programs section, to find out more programs using recursion.

    同样,在C语言中还有许多递归应用。 进入程序部分,使用递归查找更多程序。

    翻译自: https://www.studytonight.com/c/type-of-functions-and-recursion.php

    c语言定义函数和声明函数

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

    千次阅读 2020-04-02 12:07:50
    定义函数时,其形参的类型放在函数()后面,()里只放了形参名 虽然这样最终用编译器(如gcc等)编译时是可以通过的,但是在IDE中,却会提示语法错误。 而通常我们在定义函数时,形参的定义是放在函数的()中的。 ...

    今天在读Zlib库源码中第三方contrib/minizip文件时,发现一个有意思的东西:

    定义函数时,其形参的类型放在函数()后面,()里只放了形参名
    在这里插入图片描述

    虽然这样最终用编译器(如gcc等)编译时是可以通过的,但是在IDE中,却会提示语法错误。
    而通常我们在定义函数时,形参的定义是放在函数的()中的。
    在这里插入图片描述

    那么上面的那种做法,是不是只是方便对形参进行注释?

    展开全文
  • C语言定义函数输出数组的值

    千次阅读 2019-04-29 20:41:13
    #include <stdio.h> void f(int * pArr, int length)//pArra&a[0] { int i; for (i=0;i<length;++i) { printf("%d\n", *(pArr+i));//a[i]==*(a+i) } } int main(void) { int a[5] = {1,2,3,4,5};......
    展开全文
  • C语言无参函数定义 如果函数不接收用户传递的数据,那么定义时可以不带参数。如下所示: dataType functionName(){ //body } dataType 是返回值类型,它可以是C语言中的任意数据类型,例如 int、float、char 等。 ...
  • C语言程序是由多个零件组合而成的,而函数就是最主要的组合零件。C语言程序的主体部分就是一个 main( ) 函数,它在 C语言程序中是必不可少的,每一个 C 程序都首先从 main( ) 函数开始执行。C语言函数是什么在前面的...
  • C语言定义函数指针

    千次阅读 2018-06-09 10:15:19
    //void (*p)(char s[]) 函数指针的定义方法//void (*)(char *s) 函数指针的类型int add(int a, int b){ return (a + b);}int sub(int a, int b){ return (a - b);}int main(int argc, char *argv[])...
  • 函数定义是按如下的形式: 函数名( [类型标识符 参数名 ...] ){具体的多个语句return [ 返回值 ];} 是必须的,主要有 void,各种变量类型,以及自定义的结构体名,以及对应的指针类型,其中void表示没有返回值[类型...
  • C语言函数定义与使用

    千次阅读 2021-05-22 02:06:45
    C语言函数定义与使用》由会员分享,可在线阅读,更多相关《C语言函数定义与使用(5页珍藏版)》请在人人文库网上搜索。1、讲义十三 C语言函数定义与使用一、函数定义:1、函数定义:返回类型 函数名(参数...
  • C语言返回字符串函数共有四种方式,分别如下: 使用堆空间,返回申请的堆地址,注意释放 函数参数传递指针,返回该指针 返回函数定义的静态变量(共享) 返回全局变量 下面来看看详细的介绍 其实就是要返回一...
  • C语言函数定义

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

    千次阅读 2020-04-01 19:05:47
    1、函数定义 C源程序是由函数组成的。最简单的程序有一个主函数 main(),但实用程序往往由多个函数组成,由 主函数调用其他函数,其他函数也可以互相调用。函数是C源程序的基本模块,程序的许多功能是通过对 函数模块...
  • C语言函数定义和声明

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

    万次阅读 多人点赞 2019-04-13 21:44:53
    一、C语言之自定义函数的调用 1.声明一个自定义函数: void fun(void);//函数的声明 也可在主函数之前编写自定义函数; 2.主函数里调用自定义函数: int main(void) { fun();//调用fun函数; return 0; } 3.编写...
  • 一:定义 二:函数的一般形式 组成部分 1.返回类型 2.函数名称 注意: 3.参数 4.函数主体 实例: 三:函数声明 补充: 四:调用函数 实例: 五:函数参数 六:内部函数&外部函数&内联函数 1....
  • c语言函数指针的定义和使用

    千次阅读 2020-02-12 17:37:35
    1、定义:函数返回值类型 (* 指针变量名) (函数参数列表);...另外,还可以使用typedef来定义函数指针 例如: typedef void (*func) (void); //将函数指针 void (*) (void) 重命名为func。 void (*myfunc) (...
  • C语言函数定义函数声明

    万次阅读 多人点赞 2017-11-10 10:04:18
    C语言不同于Java语言,在Java语言中,在一个类中,定义函数/方法后,在调用时不需要声明。在C语言定义函数后,在使用前,需要在main函数前进行声明,否则会报错。 #include //使用函数前,需要在main函数前对...
  • 假如函数在调用它之前定义... 您可能感兴趣的文章:深入理解C++中public、protected及private用法C/C++函数调用的几种方式总结浅析C语言中堆和栈的区别关于C语言中参数的传值问题浅谈C语言函数调用参数压栈的相关问题
  • C语言自定义函数

    千次阅读 2021-05-19 12:12:30
    接收用户数据的函数定义时要指明参数,不接收用户数据的不需要指明,根据这一点可以将函数分为有参函数和无参函数。将代码段封装成函数的过程叫做函数定义。无参函数定义如果函数不接收用户传递的数据,那么定义...
  • C语言基础:函数定义与调用

    千次阅读 2021-05-22 05:42:31
    在前面内容中我们调用了一个标准C的库函数,叫printf,那么如果我们想自己定义函数应该如何来编写程序呢?定义函数又有什么好处呢?因为我们在教材中提及到的例子主要目的是为了让读者对程序的原理有一定的了解,...
  • C语言自定义函数如何返回数组

    千次阅读 2020-07-05 13:48:40
    C语言自定义函数如何返回数组 使用 C 语言,在 main() 函数中调用了一个自定义的函数,想要从函数中获取其运行产生的字符串,直接返回数组是实现不了的,最起码也要返回数组的地址。但是在自定义函数中创建数组后,...
  • C语言fillpoly函数详解

    2020-09-03 07:07:23
    C语言中,fillpoly函数的功能是画一个多边形,并且把多边形填充。填充边框所定义的多边形的内部。fillpoly 函数的用法:void far fillpoly(int numpoints, int far *polypoints);。
  • 二.define 定义函数 1.define 定义不带参数的函数 2.define 定义带参数的函数 三.define 定义函数陷阱 1.define 函数陷阱一 2.define 函数陷阱一解决办法 3.define 函数陷阱二 4.define 函数陷阱二解决办法 四...
  • c语言函数的调用

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

    千次阅读 2021-05-31 10:27:48
    自定义数组函数 strcmp #include<stdio.h> int main() { int mystrcmp(char a[], char b[]); char str1[] = "123", str2[] = "1234"; int z; z = mystrcmp(str1, str2); printf("%d\n", z); return...
  • C语言结构体中定义函数指针详解

    千次阅读 2019-04-10 11:49:08
    C语言结构体中定义函数指针详解
  • c语言函数传递数组

    千次阅读 2020-04-11 19:23:43
    可以定义一个能接受数组作为函数参数的函数,然后调用这个函数时,可以将一个实际的数组传递给它。 数组作为函数参数时,其定义方式有下列三种: /*函数名param后跟一个空的[],说明param可以接受一个数组*/ void ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 471,297
精华内容 188,518
关键字:

c语言定义函数