一天一个c语言基础知识

static的作用是什么?

修饰局部变量

局部变量?

就是在花括号{  }内创建的变量。

干嘛用的?

使局部变量出了域不销毁。本质:改变了变量的存储位置,使变量的周期和程序的生命周期一样。

存储位置:变量是内存中的一段存储空间……… 内存分为栈区、堆区和静态区三个区。放在栈区的变量有局部变量,栈区里面的变量的特点是进作用域创建出作用域消除。放在静态区的变量有静态变量,特点是不被重新创建和销毁。

使用:

void   text()

{

       static  int a =1;

       a++;

       printf("%d ", a);

}

Int  main()

{

       Int i = 0;

       while(I<10)

       {

             text()

              i++;

       }

      return 0;

}

结果:没使用static之前,运行的结果是:2 2 2 2 2 2 2 2 2 2 ;使用之后的结果是:2 3 4 5 6 7 8 9 10 11。

 修饰全局变量

全局变量?

在{}外部定义的变量。生命周期是整个工程也就是整个工程都可以拿来使用的变量。具有链接属性。

干嘛用的?

改变变量的链接属性,将它的外部链接属性变为内部链接属性。也就是说全局变量在一个项目中的都所有文件中都能使用,使用static修饰该变量后,只能在当前源文件中使用。

链接属性……一个c项目中有很多个源文件,他们之间可以通过链接+编生产可执行文件。

使用:8cb86cc4cf004c809816c641895a9101.png

注: 两个源文件一个是add.c另一个是text.c,text.c里面使用add.c里定义的变量g_val,需要用extern声明外部符号。

fe83451746774427937922730d057793.png

注:当用static修饰变量g_val后,该全局变量的全局链接属性—>内部链接属性,所以text.c文件中不能使用该变量 ,只能在add.c中使用。

修饰函数

和修饰全局变量一样该变函数的链接属性。

使用:

97f0c49242a842488e27daa46da997d5.png

使用后static后,无法使用外部函数。

.

.

.

补充知识:关键词register (中文寄存器)

cb415cc9388349d2beacc12e3313452e.png

register的使用非常简单就是建议编译器将变量放在寄存器中 。

……完结

最后~~看到的小伙伴有什么不懂的可以问我,欢迎大家一起来相互交流学习。😇😛🥳

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值