黑马程序员技术交流社区

标题: c语言-函数学习笔记 [打印本页]

作者: xianglin123    时间: 2015-12-2 23:49
标题: c语言-函数学习笔记
没学函数之前,如果我们有一段代码完成一个特定的功能,需要被多处使用的时候

  有以下缺点:

        1.代码冗余,代码太多,不方便阅读

        2.不容易修改。比如说,功能要变的话,那么其他所用用到这个功能的地方都要修改

因此,我们用函数来封装一段功能的代码



一、函数可以理解为一个打包袋,把那些代码包装起来,然后需要用的时候拿出这个包装袋就可以了

函数的语法:

        返回值类型 函数名(参数列表){

            函数体;

        }

    注意:

        1.函数名必须符合标示符规范:

                            a.只能以字母、下划线、美元符号开头(函数的话都是直接以字母开头)



                            b.不能与关键字重名

            

                            c.函数名要有意义

   

                            d.遵守驼峰命名法



        2.参数列表那,可以没有一个参数,那样的话小括号里面什么都不写,也可以有n个参数,各个参数用逗号隔开

        3.返回值类型可以允许无返回值,如果无返回值以void写上,如果有返回值,那么看你的返回值类型是什么,就写上什么类型



    无参 有一个char类型返回值的函数

    char myTest(){

    }



  有1个参数有float类型返回值的函数

    float myTest2(float f){

    }



    无参无返回值的函数

    void  test(){

    }



   有两个参数无返回值的函数

    void test2(int num,char ch){

    }

     以上都是函数的定义(实现);





二、 函数的调用

        语法:

                函数名(参数列表);



        注意:函数如果无参,那么参数列表为空,如果有参数,则顺序传入实参,各个参数用逗号隔开



        例: test();

            test2('a',10);



        如果函数有返回值的话,我可以接收,也可以不接收。不管接不接收,只要你调用了函数都会被执行

        如果接收的话,必须用一个变量来保存这个返回值



三、函数的声明:

        为什么需要函数的声明呢??

         当你调用的函数定义(实现)在后面的话,那么必须先声明,否则会报错

         怎么声明?

            其实就是函数头,后面加分号

         函数的声明可以写在哪?

            任意位置,只需要保证在你调用这个函数之前就行了!



四、参数分为:

        实参:调用函数时传入的参数

        形参:定义在函数中的参数



    在C语言中,除了数组以外的其他类型变量,改变了形参的值,实参不会发生改变。



五、函数一些注意的地方:



        1.函数只能定义(实现)在别的函数外面,不能定义在别的函数里面



        2.C语言中,函数木有重载

            重载:函数名可以相同但是参数不同



                也就是说C语言中哪怕你参数不同,函数名一样的话也会报错!



            一句话:C语言函数名不能重名



六、 全局变量和局部变量:



        全局变量:定义在函数外的变量就是全局变量

        局部变量:定义在函数内的变量就是局部变量



    注意:全局变量如果定义在最后面,想在前面使用的话,必须也要先声明。

        声明的语法:类型参数名;

            就是不要赋值的那部分

        但是注意:全局变量的声明只能写在函数外



    不同点:

        1.生命周期不同

            全局变量:程序一启动就加载,程序结束才回收

            局部变量:当运行到它定义的语句的时候才加载,出了它所在的作用域就回收

        2.作用域不同:

            全局变量:所有函数中都可以访问

            局部变量:只有它定义的时候开始到它所在的作用域结束
作者: 我就静静的听    时间: 2015-12-3 03:17
厉害厉害
作者: 学习黑马精神    时间: 2015-12-3 08:20
非常不错 ,学习了!




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2