从零开始学习嵌入式day11

1.一维字符型数组:用于存放字符串。在函数的形式参数中,因为处理的是字符串,所以不需要传递数组长度,而是以‘\0’作为结束的标志。

        用函数的的形式完成strlen(),strcpy(),strcat(),strcmp().

                1.strlen():
        

               2.strcpy():

                3.strcat():

                

                 4.strcmp():

2.关于数组作为函数参数的情况。

        1.一维整型数组作为函数参数:形参需要定义数组类型,需要定义数组长度。实参传递数组名和长度。

        2.一维字符型数组作为函数参数:形参需要定义数组类型。但是不需要指定数组长度,因为操作字符串以字符串结束标志‘\0’为依据。实参传递数组名即可。

        3.二维整型数组作为函数参数:形参需要指定为int a[][n](其中行的值可以不写,但是列的值必须写。),需要传递长度。实参需要传递数组名,行数。

        4.二维字符型数组作为函数参数:形参需要定义 char a[][n],还需要定义长度。长度用来指定字符串的行数。

3.标识符的作用域和可见性。

        作用域:局部作用域和全局作用域。局部作用域及标识符在{ }之内定义的。全局作用域及标识符不在{ }之内。在局部作用域中定义的变量为局部变量,在全局作用域中定义的变量为全局变量。

        标识符可见性原则:

                1.先定义,再使用。

                2.同一作用域中不能有同名的标识符。

                3.不同作用域中定义的同名标识符没有影响。

                4.不同作用域,但是作用域之间存在嵌套关系。标识符的满足就近原则,即会有限匹配最近定义的标识符。

        从不同角度看待局部变量和全局变量。1.空间角度。2.时间角度(生命周期)。

                1.空间角度:

                        局部变量:特点是空间自动分配,自动释放。不初始化的话,其值为随机值。

                        全局变量:特点是空间自动分配,自动释放。不初始化的话,其值为0.

                2.时间角度:

                        局部变量的生命周期:从定义到它作用范围结束时销毁。

                        全局变量的生命周期:从程序开始执行时就存在了,直到程序结束执行。注意:全局变量和静态变量不能用变量进行初始化,只能用常量进行初始化。但是可以在定义后,又进行声明。

4.存储类型关键字:

        1.auto:表示他是一个自动变量(局部变量)-----自动申请,自动释放。在声明变量时,默认为auto。

        2.static:修饰局部变量时,1 局部变量的声明周期会被延长,从程序开始到整个程序执行结束。但是作用域依然没变,依然在局部变量声明的作用域之内。2 static修饰局部变量,局部变量只会被初始化一次。3.static修饰局部变量,此时该变量具有继承性。4.static修饰的局部变量只能用常量进行初始化。

        3.register:表示寄存器存储。注意:用register修饰的变量,不能进行取地址运算。

        4.extern:1.表示变量是存在外部的,即不在当前文件中。2.extern只能修饰全局变量。3.static修饰全局变量时,表示限定该全局变量的作用域为当前文件。别的文件不能通过extern来访问到该全局变量。

        注意:static修饰函数作用和修饰全局变量的作用相同。表示限定该函数只能 在本文件中访问,外部文件不能通过extern来访问该函数。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值