太原做网站的公司,wordpress多站点必备插件,景区网站做电子商务的特点,菏泽网站制建设哪家好点击蓝字关注我们因公众号更改推送规则#xff0c;请点“在看”并加“星标”第一时间获取精彩技术分享来源于网络#xff0c;侵删一、static在C语言里面可以用来修饰变量#xff0c;也可以用来修饰函数。1、 先看用来修饰变量的时候。变量在C语言里面可分为存在全局数据区、…点击蓝字关注我们因公众号更改推送规则请点“在看”并加“星标”第一时间获取精彩技术分享来源于网络侵删一、static在C语言里面可以用来修饰变量也可以用来修饰函数。1、 先看用来修饰变量的时候。变量在C语言里面可分为存在全局数据区、栈和堆里。其实我们平时所说的堆栈是栈而不是堆不要弄混。例如在file.c中int a ;int main(){int b ;int *c (int *)malloc(sizeof(int));}a是全局变量b是栈变量c是堆变量。2、static对全局变量的修饰可以认为是限制了只能是本文件引用此变量。有的程序是由许多.c文件构成。彼此可以互相引用变量但加入static修饰之后只能被本文件中函数引用此变量。3、static对栈变量的修饰可以认为栈变量的生命周期延长到程序执行结束时。一般来说栈变量的生命周期由OS管理在退栈的过程中栈变量的生命也就结束了。但加入static修饰之后变量已经不再存储在栈中而是和全局变量一起存储。同时离开定义它的函数后不能使用但如再次调用定义它的函数时它又可继续使用而且保存了上一次被调用后留下的值。4、static对函数的修饰与对全局变量的修饰相似只能被本文件中的函数调用而不能被同一程序其它文件中的函数调用。例如文件a.cstatic int i; //只在a文件中用int j; //在工程里用static void init() //只在a文件中用{}void callme() //在工程中用{static int sum;}上面的全局变量i和init()函数只能用在a.c文件中,全局变量sum的作用域只在callme()函数里。变量j和函数callme()的作用域扩充到整个工程文件。所以可以在下面的b.c中用extern关键字调用。extern告诉编译器这个变量或者函数在其他文件里已经被定义了。文件b.cextern int j; //调用a文件里的extern void callme(); //调用a文件里的int main(){...}而且static会有下面的几个特点1、若全局变量仅在单个C文件中访问则可以将这个变量修改为静态全局变量以降低模块间的耦合度;2、若全局变量仅由单个函数访问则可以将这个变量改为该函数的静态局部变量以降低模块间的耦合度;二、局部变量和全局变量从作用域角度将变量分为局部变量和全局变量。它们采取的存储类别如下局部变量①自动变量即动态局部变量(离开函数值就消失)。②静态局部变量(离开函数值仍保留)。③寄存器变量(离开函数值就消失)。④形式参数可以定义为自动变量或寄存器变量。全局变量①静态全局变量(只限本程序文件使用)。②全局变量(即非静态的全局变量允许其它程序文件引用)。从变量存在时间可将变量存储分为动态存储和静态存储。静态存储是在整个程序运行时都存在而动态存储则是在调用函数时临时分配存储单元。动态存储①自动变量(函数内有效)。②寄存器变量(函数内有效)。③形式参数。静态存储①静态局部变量(函数内有效)。②静态全局变量(本程序文件内有效)。③全局变量(整个程序可引用)。从变量存放的位置可将变量存储区分为静态存储区和动态存储区静态存储区①静态局部变量。②静态全局变量。③全局变量(可被同一程序其它文件引用)。动态存储区自动变量和形式参数。CPU寄存器寄存器变量。当然本文讨论的对于变量的内存存储分配只是一部分在C语言中依然会有其他的存储方式和类型的存在。如果你年满18周岁以上又觉得学【C语言】太难想尝试其他编程语言那么我推荐你学Python现有价值499元Python零基础课程限时免费领取限10个名额▲扫描二维码-免费领取戳“阅读原文”我们一起进步