xbns.net
当前位置:首页 >> C语言stAtiC修饰的变量 >>

C语言stAtiC修饰的变量

static表示整个函数只属于本文件,只能被本文件的函数调用,具有文件作用域,所以,肯定不能在局部作用域里面使用.(因为一个函数中声明的东西怎么能管自己外面的事呢,这肯定是越界行事了嘛)但如果把static去掉,就是一个普通的函数了,这样,你可以在另外的函数内部声明它.

当然可以啊,只是静态变量又不是常量,只是它会保留上次执行后的值,你还是可以给它赋值的 static int a = 2; a += 2; 不久是重新赋值了吗?

static 声明的变量在C语言中有两方面的特征:1)、变量会被放在程序的全局存储区中,这样可以在下一次调用的时候还可以保持原来的赋值.这一点是它与堆栈变量和堆变量的区别.2)、变量用static告知编译器,自己仅仅在变量的作用范围内可见.这一点是它与全局变量的区别.

用static声明的变量是静态变量,比如static int a =4;这个a的初始值为4(仅仅是初始值),并且这个变量是一直存在的.几个a并不是同一个a,我们可以把程序中的a改一下名字,方便理解.如下:#include <stdio.h> int fun(int n) { static int a =3;

static 变量从声明起一直存在,且存储最后一次调用时的值.如果你想记录某个值的变化,就用它. 否则用自动变量就好了.

第一、在修饰变量的时候,static修饰的静态局部变量只执行一次,而且延长了局部变量的生命周期,直到程序运行结束以后才释放.第二、static修饰全局变量的时候,这个全局变量只能在本文件中访问,不能在其它文件中访问,即便是extern

C语言中用static修饰后的函数只能在当前的.c文件中使用,无法给外部调用.就比如我们常加头文件stdio.h,如果里面的printf函数用了static修饰的话,我们就不能调用这个函数了普通函数和static修饰的函数没什么区别,但是普通函数可以通过使用extern声明为外部函数,这样其他.c文件通过添加.h头文件就可以调用里面的普通函数了

你可以运行以下程序.在后面再叫上:printf(%d%d,&j &i); 静态变量是 在各个的模块的前面 定义的 在各个模块中不受加减 也就是 静态变量的值不变.这也是静态变量和其他变量最明显的区别.

关键字static的作用是什么?这个简单的问题很少有人能回答完全.在C语言中,关键字static有三个明显的作用:; 在函数体,一个被声明为静态的变量在这一函数被调用过程中维持其值不变.; 在模块内(但在函数体外),一个被声明为静态的变量可以被模块内所用函数访问,但不能被模块外其它函数访问.它是一个本地的全局变量.; 在模块内,一个被声明为静态的函数只可被这一模块内的其它函数调用.那就是,这个函数被限制在声明它的模块的本地范围内使用.例子可以参考我的下面URL

static c = 3; 只初始化一次,后面再使用c就是用上次f()返回后c的结果 所以当i=0时,f()中a=2,c初始化为3,c=c+1后c=4,返回a+c=4+2=6.返回后c保持为4 当i=1时,f()中a=2,c初始值为上次返回后的结果4,从而c=c+1=5,函数返回a+c=2+5=7.返回后c保持为5.当i=2时类似

sichuansong.com | rprt.net | snrg.net | xmlt.net | wlbx.net | 网站首页 | 网站地图
All rights reserved Powered by www.xbns.net
copyright ©right 2010-2021。
内容来自网络,如有侵犯请联系客服。zhit325@qq.com