美文网首页
SQSH1616 12-19 C基础

SQSH1616 12-19 C基础

作者: 彳亍的心 | 来源:发表于2016-12-19 17:48 被阅读0次

    一函数

    1.函数的基本概念

    函数就是把代码中功能相似并且独立的代码单独封装成一个整体;

    (1)函数优点

    提高代码的简洁性,挺高开发效率
    提高代码的重用性
    有利于程序的维护

    (2)函数的分类

    系统函数:
    由C标准库提供的函数;如:printf()scanf()gets()
    用系统函数时,只需将其对应的头文件包含起来,即可
    exampl:
    #include<stdio.h>------>printf("hello!");
    pow(a,b);------>计算a的b次方
    自定义函数:
    用户根据需要自己定义的函数;
    分类二:
    有返回值函数:
    函数调用结束后,会返回一个数值给主调函数;
    无返回值函数;
    函数结束后,无返回值,一般定义为viod函数,即空类型
    分类三:
    有参函数:
    参数可以任意多
    无参函数:

    2.函数的基本定义L

    (1)无参函数的定义

    DataType FunctionName()
    {
    //函数体
    //可执行语句
    }
    注:函数名背后的括号不可以省略!!!

    (2)有参函数的定义

    DataType FunctionName(Type arg1,Type arg2)---->(括号内为参数列表)
    {
    //函数体
    }
    注:参数列表可以有多个,参数的类型可以任意(相对)!

    (3)函数的定义,函数的声明以及函数的调用

    函数的定义
    DataType FunctionName(参数列表);
    {
    //函数体
    }
    函数的声明:
    DataType FunctionName(参数列表);
    注:
    声明时,参数列表一定要和定义时的参数列表一致!!!
    后面的分号不可省略!!
    放在函数被调用之前的任意
    函数的调用;
    FunctionName(value);
    value:数值
    注:
    函数调用时,实参的类型,一定要和函数定义时的形参列表一致!
    实参:
    实际参数,即具体的数值
    函数调用时的参数都是实参
    形参;
    形式参数,形参的定义和普通变量的定义无区别
    函数定义及声明时的参数
    注:函数名表示函数的入口地址,函数之间没有优先级问题,函数之间是等价的,即平行关系!!!
    形参在发生调用时分配空间!!!
    在发生我那个函数调用时,系统会默认将实参的值付给形参

    3.函数的返回值

    无返回值的类型函数类型为:void
    DataType FuncName(参数列表)
    {
    //函数体
    }
    DataType:决定了函数的返回值类型;
    若是int;则函数返回值为int类型
    若是double;则函数返回值为double类型
    如果函数的返回值能够在后面的程序中使用,则需要相同类型的变量接收返回值
    若是void类型的函数,则无返回值,return可有可无!!!
    若返回值不是void类型,则必须要有return!!!

    4.return的作用

    (1)函数遇到return,则结束后面的代码不执行

    (2)用于返回函数的值即执行结果

    5.关键字

    (1)变量分为全局变量和局部变量

    全局变量:
    在函数体之外定义的变量
    其作用域是从变量定义处开始的,一直到本文的结束!!!
    在全局变量定义之前不可使用全局变量
    局部变量:
    在函数中定义的变量,作用域:整个函数
    函数结束时,局部变量会自动消亡!
    因此不同的函数中可以使用相同的变量名。
    若局部变量和全局变量重名,则全局变量对局部变量不可见
    auto:
    声明变量是动态变量
    可以省略,如:
    动态全局变量:
    生命周期:整个函数运行期间
    动态局部变量:
    生命周期:仅限于定义该变量的函数中
    auto int a = 5;
    int b = 4;
    static:
    声明变量为静态变量;
    作用域:从定义处开始,到文件结束
    声明周期:整个程序运行期间。
    静态变量,若定义是没有初始化,则系统默认为初始化为:0!
    静态变量只初始化一次!!!
    静态函数:static修饰函数,则此函数只能用于本文件
    其他文件不可使用!!!
    extern:
    声明为外部变量:extern int sum;
    修饰函数:extern int test();
    声明变量或函数在外部已定义;
    register:
    寄存器变量:变量直接存放在寄存器中
    CPU的寄存器个数有限,不可以定义多个寄存器变量
    速度快
    const:
    常量(只读变量),不可修改其值
    const int num = 5;
    int const num = 5;
    const int p;值不可改
    int const p;值不可改
    int
    const p;地址不可改
    const int
    const p;地址和值不可改

    6.函数的传递

    值传递
    地址传递

    7.指针函数和函数指针

    指针函数:
    int test();
    返回一个局部地址是不允许的,没有意义
    注意返回值问题,返回的是一个地址!!!
    函数指针:
    int (
    pa)()

    相关文章

      网友评论

          本文标题:SQSH1616 12-19 C基础

          本文链接:https://www.haomeiwen.com/subject/juvtvttx.html