c语言基础-函数08

来源:互联网 发布:js求字符串字节长度 编辑:程序博客网 时间:2024/05/21 15:05

1.goto语句

   标签名:

      goto 标签名;

2.函数

     2.1函数定义和声明

      声明:返回值类型 函数名称([参数列表]);

      定义:返回值类型 函数名称([参数列表])

        {

            函数体;

        };

       参数其实就是定义在函数内部的1个局部变量.

        ->所以在函数的内部不能再定义1个局部变量的名称和参数的名称一样.

        ->所以在函数的内部可以直接访问参数的值.

       函数的参数的作用:可以将调用者的数据传递到函数的内部去使用.

        形参声明在函数名的小括弧里面的参数,叫做形式参数,简称形参.

        实参在调用的函数的时候 实际上为形参赋的值 这个值就叫做实际参数,简称实参.

       实参的类型如果和形参的类型不一致的时候,就会做自动类型转换.

  

         如果函数的参数是1个数组,在声明这个参数的时候,并不会去真正创建数组.

          而是去声明1个用来存储数组地址的1个指针变量.

          这个指针变量在内存中占据8个字节.

          所以,你通过sizeof去计算参数数组的字节的时候得到的都是8

          在传值的时候.是把实参数组名传递进来.

          数组名代表数组的地址.

          所以,这个时候传值传的是数组的地址.

          把数组的地址传递给了函数的参数.

          所以,函数的参数也指向了实参数组.


          当数组作为函数的参数的时候.那么在传递的时候,会丢失数组的长度.所以,这个时候还需要1个参数 让调用者将传入的数组的长度传进来

       结论: 当数组作为函数的参数的时候.

            在函数的内部使用sizeof计算参数数组的字节数,

            永远得到的都是8

            所以,在函数内部无法使用sizeof计算参数数组的长度.

       命名规则:

       a.命名要符合标识符的命名规则及规范.

       b.函数的命名命名规范.

          ->函数的名称一定要取得有意义.别人1看你函数的名字,就知道函数中的代码在做什么事情.

            知名达意

          -> 1个函数代表1个相对独立的功能.建议大家函数的名称最好是1个动词.      

             1看就知道在做什么事情.



    2.2 函数调用

      函数名();

 注意.

    1).如果函数写了声明,那么这个函数的定义就可以放在调用函数的后面了.

 

    2).函数的声明最晚应该放在调用函数的前面.

       一般情况下,函数的声明都是统一放在最顶部的.

 

    3).如果被调用的函数在主调函数之前.那么这个时候,被调用函数的声明可以省略,

        在前面直接写定义.

        

       如果被调用函数的定义在主调函数的后面,那么这个时候必须在调用之前声明这个被调函数.

 

    4).声明函数的函数头,必须要和实现函数的函数头一致.

       虽然参数可以不一致,但是结果就是乱乱的.所以为了保证不出问题,一定要保证函数头声明和实现一模一样.

 

    5).在声明函数的时候,如果函数还有参数那么参数的名称可以省略.只写类型.

       虽然这样可以,但是我们还是建议你声明和实现的函数头一模一样.


    6).如果函数的返回值是int类型的,可以不写这个函数的声明.


  

原创粉丝点击