用static关键字声明一个变量的作用是;1、用static声明局部变量,则将把变量分配在静态存储区,该变量在整个程序执行期间不释放,为其分配的空间始终存在。2、用static声明全局变量,则该变量的作用域只限于本文件模块,即使用extern声明也不能使用。原文:http://zhaoxiaohu.blog.51cto.com/10778115/1704362
原地址:http://blog.163.com/sunshine_linting/blog/static/44893323201191294825184/全局变量(外部变量)的说明之前再冠以static 就构成了静态的全局变量。全局变量本身就是静态存储方式, 静态全局变量当然也是静态存储方式。这两者在存储方式上并无不同。这两者的区别虽在于非静态全局变量的作用域是整个源程序, 当一个源程序由多个源文件组成时,非静态的全局变量在各个源文件中都是有效的。而静态全局变量则限制了其作用域,...
static int j;int k=0;void fun1(void){static int i=0; //注释①i++;}void fun2(void){j=0; //注释②j++;}int main(){for(k=0; k<10; k++){fun1();fun2();}return 0;}问:i=? j=?解析:注释①:static int i=0;这个定义与普通的int i=0不同,加了static后,这个i会存放在静态数据区,只能被初始化一次,在第一次调用fun1()时,创建i并初始化,之后再调用fun1()时,发现这个i已存在,那么这句就会被忽略掉。注释②:j=0;这就是普通...
Static在C语言里面有两个作用,第一个是修饰变量,第二个是修饰函数。1、Static修饰变量按照作用范围的不同,变量分为局部变量和全局变量。如果用static修饰变量,不论这个变量是全局的还是局部的都是存储在静态数据区。下面分开来讲:¨ 如果用static修饰全局变量,我们称其为静态全局变量。我们用static修饰全局变量的主要目的就是:使得其作用域仅限于变量被定义的文件中(即从变量定义处到本文件结尾处),其它文件不论...
一、extern与函数二、static与函数三、static、extern与函数的总结 说明:这个C语言专题,是学习iOS开发的前奏。也为了让有面向对象语言开发经验的程序员,能够快速上手C语言。如果你还没有编程经验,或者对C语言、iOS开发不感兴趣,请忽略。 上一讲中大致介绍了变量的类型,不同类型的变量有不同的存储类型、不同的生命周期、不同的作用域。这讲介绍2个比较重要的关键字:static和extern。static和extern不仅可以用在变量上...
C语言中数据有两种属性:数据类型和存储类别。数据类型定义了数据格式(长度),存储类别定义了数据的作用域和生命期。1.变量的声明1.1变量的声明的一般形式:存储类别 数据类型 变量名;数据类型以int为例:自动变量:auto int i;//自动变量是局部变量局部变量:在函数内部定义的变量,局部变量缺省存储类别时就是自动变量
作用域:从定义开始到函数结束。生命期:从函数调用开始到函数推出为止。外部变量/全局变量:在函数外部定义而没有指...
在开发过程中。我们常常会须要定义一些static类型的变量或者函数。我们接下来来详细聊一下static;1、修饰变量 当static来修饰一个变量时,就注定了这个变量的可见范围和生命周期; (1)当修饰全局变量时 static int flag1 = 0; int flag2 = 0; 这两个变量存储在全局数据区。flag1仅仅在本文件可见。其它文件里不可见;flag2可在其它文件里通过声明extern int flag2来使用; (...
在C语言中,static通常有2种含义:1)定义变量的生命周期;2)定义变量或者函数的作用域。变量的生命周期是指,相对于程序运行的进程生命周期,变量存在的时间段。变量的生命周期由变量的存储类型(位置)决定。因此static的第1种含义也可以理解为,static定义了变量的存储类型(位置)。C语言中,变量存储位置分为栈、全局静态区、堆。栈用来做函数调用,参数传递等,在程序的运行过程中是操作最频繁的数据区。全局静态区,是变量...
static静态变量类型static定义静态变量类型,首先要区分静态变量和静态存储方式,static定义的静态变量一定使用静态存储方式,但使用静态存储方式的不一定是静态变量。例如外部全局变量使用静态存储方式但不是静态变量,用关键字static修饰的变量才是静态变量。静态局部变量函数内定义的static变量成为静态局部变量,静态局部变量具有以下特点:1、静态局部变量在函数内定义,它的生存期为整个源函数,但是其作用域仍与自动变量相同...
google在最后三页C语言static内容,可找到的资料非常少。无论是长篇大论不知所云的话,在关键位置或跳过,习的人来说參考性不是非常大。所以。我这篇博文博採众家之长,把互联网上的资料整合归类,并亲手编敲代码验证之。 C语言代码是以文件为单位来组织的,在一个源程序的全部源文件里,一个外部变量(注意不是局部变量)或者函数仅仅能在一个源程序中定义一次,假设有反复定义的话编译器就会报错。伴随着不同源文件变量和...
转自:http://blog.chinaunix.net/uid-26822028-id-3191967.html 作者:geceduStatic翻译出来是“静态”“静止”的意思,在C语言中的意思其实和它的本意差不多,表示“静态”或者“全局”的意思,用来修饰变量和函数。经static修饰过后的变量或者函数的作用域或者存储域会发生变化,而由static修饰的变量在初始值方面也会表现出static关键字的优势。想知道经static修饰过后的变量或者函数的作用域或者存储域发生了什么变化吗...
程序的局部变量存在于(堆栈)中,全局变量存在于(静态区 )中,动态申请数据存在于( 堆)中。1.作用于变量:用static声明局部变量-------局部变量指在代码块{}内部定义的变量,只在代码块内部有效(作用域),其缺省的存储方式是自动变量或说是动态 存储的,即指令执行到变量定义处时才给变量分配存储单元,跳出代码块时释放内存单元(生命期)。用static声明局部变量时,则改变变量的存储方式(生 命期),使变量成为静态的局部...
static的作用(精辟分析) 在C语言中,static的字面意思很容易把我们导入歧途,其实它的作用有三条。(1)先来介绍它的第一条也是最重要的一条:隐藏。当我们同时编译多个文件时,所有未加static前缀的全局变量和函数都具有全局可见性。为理解这句话,我举例来说明。我们要同时编译两个源文件,一个是a.c,另一个是main.c。下面是a.c的内容char a = ‘A‘; // global variable
void msg()
{
printf("Hello\n");
} 下面是main...
C 语言中 static的作用有三条1,隐藏当我们同时编译多个文件时,所有未加static前缀的全局变量和函数都具有全局可见性。如果加了static,就会对其它源文件隐藏。利用这一特性可以在不同的文件中定义同名函数和同名变量,而不必担心命名冲突。Static可以用作函数和变量的前缀,对于函数来讲,static的作用仅限于隐藏,而对于变量,static还有下面两个作用。2,static的第二个作用是保持变量内容的持久。存储在静态数据区的变量会在程...
各位看官们,大家好,上一回中咱们说的内置宏的例子,这一回咱们说的例子是:static关键字。闲话休提,言归正转。让我们一起talk C栗子吧! 看官们,C语言提供了static关键字,它经常出现在变量或者函数的最前面,为什么要加上它呢?它主要有什么作用呢?今天我们一起来了解static关键字。在介绍之前,我们先做一些铺垫。主要是介绍一下变量或者函数的生命周期和作用域。变量和函数的生命周期所谓的生命周期就是指变量或者函数在程...