static的作用

用于修饰全局变量、局部变量和函数。

全局变量和局部变量简解:http://t.csdn.cn/gywDj

1、修饰全局变量

             对于整个工程,也就是多个源文件时;因为全局变量具有外部链接属性

             在一个工程里,在A源文件里定义的全局变量,在B源文件里可以通过extern使用,但是如果这个全局变量被static修饰,则外部链接属性会变成内部链接属性。

      static修饰会把外部链接属性变成内部链接属性,使全局变量作用域变小

2、局部变量

            局部变量存储在栈区,进入作用域创建,出作用域销毁;但是在被static修饰之后,就存储在了静态区,而存储在静态区的变量,则是到程序结束才释放。但本质上,static修饰只是改变了存储位置,因为存储位置差异,执行效果不同。

        static会改变局部变量的存储位置,并且使它生命周期延长,但不会改变它的作用域。

#include<stdio.h>

void swap() {

	static int d = 3;
	d=5+d;              	
   printf("%d\n",d);    //第一次调用时 得d==8;由于static修饰 并且并未销毁
	                    //第二次调用时,此时d的值为8,所以经过d=5+d;输出13
}

int main() {
	int a = 10;
	 swap(); //第一次调用
     swap();//第二次调用
	}

3、修饰函数

            在修饰全局变量时,描述了全局变量具有外部链接属性,但同样函数也具有外部链接属性;在static的修饰下,也会变成内部链接属性。

          修饰全局变量和修饰函数上有一定的相似度

c语言小知识:

       栈区局部变量
函数参数
      堆区malloc
calloc
realloc
free
    静态区静态变量
全局变量

                                                            创作不易,路过的帅哥美女,动动小手,点点赞咯,蟹蟹啦

                                                                              若文章有问题,请指出,虚心接受批评

  • 6
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

tq02

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值