C语言秃头笔记--初识常见关键字2

初识常见关键字2

typedef

类型重定义

如:

239b37fd464341ccaf8e77b973cc7553.jpg

 293ac80950744331a5d7b9341e518fc9.png

 我使用typedf重新定义unsigned int,可以使其输入变得更加简单

 

static

静态的

static的用法

1.static修饰局部变量

2.static修饰全局变量

3.static修饰函数

如:static修饰局部变量

5c9f680ceea2479ab3d490eccd444277.jpg

 结果是:2 2 2 2 2 2 2 2 2 2 

首先i=0<10 ,进入while函数,进入后调用test(),当我们进入局部范围时创建整型a,a=1,然后a++,输出2,因为a是局部变量,所以当a出局部范围时,a销毁,所以当我们下一次再进入局部范围时a又=1,然后不停的循环10次,结果就出来了

 

当在int a前加上static时,结果又发生了变化

 8e91c3dec0664f54abbfc30dceb69ea1.jpg

 

结果为2 3 4 5 6 7 8 9 10 11

当static修饰局部变量时,改变了局部变量的生命周期(本质上改变了变量的存储类型)

因为static改变了int a的生命周期(存储类型),使得a出了局部范围不销毁,可以在下一次继续使用,所以结果就变成上述结果

static修饰全局变量

如:

106661eec4a2450caa2f8f86b60b89c0.jpg

 

首先在外部定义一个全局变量,并用extern声明

即可使用,结果是2022

但当我们在全局变量前加上static时,情况就发生变化了 ,如图

88f5619e26d643fe84b616b167b74148.jpg

af00677d76db43458005c6fb462da229.jpg 

这是因为static修饰全局变量,使得这个全局变量只能在自己所在的源文件内部使用,其他源文件不可再使用

全局变量,之所以在其他源文件内部可以被使用,是因为全局变量具有外部链接属性,但是被static修饰后,变成了内部连接属性,其他源文件自然就不能链接到这个静态的全局变量了

 

static修饰函数

(static修饰函数和修饰全局变量相思)如图

d36babe72e3a4bbb98faa51bb6b2a903.jpg

 这是static未修饰函数add时的结果,当static修饰函数add后,如图

bd4ac133dc474f8da08bbbeb21fe9412.jpg

477efadba79447a18bfaf7961f95088b.jpg

 出现的问题和全局变量一样,即

static修饰函数,函数只能在自己所在的源文件内部使用,不能在其他源文件内部使用

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值