嵌入式学习——C语言基础——day8

1. 函数的三种形式

1.1 函数的定义

            函数类型 函数名(数据类型1 形式参数1, 数据类型2 形式参数2,  ..)

            {
                函数体;
                return 返回值;
            }

        注意:

                1. 函数类型为函数运行结果的类型

                2. 函数返回值与函数类型不匹配时,强制将返回值转换为函数类型后返回

                3. 函数类型不写默认为int类型

                4. 函数的命名与变量命名规则相同

                5. 函数没有返回结构,函数类型写成void

1.2 函数的调用

            函数名(实参1, 实参2, 实参3, ..);

            主调函数:主动调用函数的函数,(例:main函数)
            被调函数:被调用的函数(例:自己编写的函数)

        注意:如果实参类型与形参类型不匹配,那么会将实参类型强制转换为形参类型传入到函数中

1.3 函数的声明(函数头+" ; ")

        被调函数在主调函数下方时,需要对被调函数进行声明

        函数类型 函数名(数据类型1 形式参数1, 数据类型2 形式参数2, 数据类型3 形式参数3, ..);

2. 变量的作用域及变量的生存周期

2.1 变量作用域

        变量能够使用的范围

2.2 变量生存周期

        从变量被分配空间到变量分配空间被回收的整个过程

2.3 变量存储类型(默认auto)

        1. auto——自动型变量(局部变量)(存储在栈区)

                1. 局部变量作用域在该变量定义最近的大括号内,超过大括号范围不能在使用该变量

                2. 未经初始化为随机值

                3. 程序执行到变量定义时为变量开辟空间

                4. 超过变量作用域回收变量空间. 

        2. register——寄存器变量(存储在寄存器中)

                注意:若寄存器存满,则将寄存器变量放在栈区中,等价于auto类型

        3. extern——外部存储

                1. 作用

                        声明外部存储的变量

                        声明外部存储的函数

                2. 定义与声明的区别

                        1. 定义:之前变量是不存在的,定义该变量为变量分配内存空间

                        2. 声明:之前变量是存在的,声明该变量的类型,同时声明变量是存在的

        4. static——静态变量(数据区)

                作用

                        1. 修饰变量,让该变量称为静态变量

                        2. 限定变量或者函数只能在本文件中使用

                        3. 防止多文件全局变量函数重名

                原理

                        1. 静态变量未经初始化值为0

                        2. 在编译时为静态变量分配内存空间

                        3. 程序执行结束后,回收静态变量空间

                注意: 一个c语言程序,先编译,再运行,auto int a的内存空间是程序运行时候在栈区开辟的,static int c是程序运行之前编译时候已经被挑出来在数据区开辟空间

        5. 全局变量(存储在数据区)

2.4 变量的定义

    存储类型 数据类型 变量名;(存储类型默认auto)

3. 函数的传参

3.1 值传递

3.2 全局变量传递

3.3 整形数组传递

        int a[5] = {1, 2, 3, 4, 5};

        int fun(int array[], int len);

      

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值