static不是允许修改,你估计和const搞混了,static表示静态存储,直到整个程序结束变量值才会从存储区释放,静态变量又分为全局静态变量和局部静态变量,
全局变量与全局静态变量的区别:
(a)若程序由一个源文件构成时,全局变量与全局静态变量没有区别.
(b)若程序由多个源文件构成时,全局变量与全局静态变量不同:全局静态变量使得该变量成为定义该变量的源文件所独享,即:全局静态变量对组成该程序的其它源文件是无效的.
(c)具有外部链接的静态;可以在所有源文件里调用;除了本文件,其他文件可以通过extern的方式引用;
静态全局变量的作用:
(a)不必担心其它源文件使用相同变量名,彼此相互独立.
(b)在某源文件中定义的静态全局变量不能被其他源文件使用或修改.
(c) 只能在本文件中使用!具有内部链接的静态;不允许在其他文件里调用;
静态局部变量和作用域和局部变量一样,不过生存周期不一样,局部变量在定义局部变量的函数调用完之后就从内存中释放其值,而静态局部变量不释放,等整个程序全部执行结束后才会从内存中释放.
会自动释放,指针也是一样的.
局部变量的作用域是定义该变量的函数或定义该变量的复合语句.只在定义它的函数或复合语句范围内有效,只能在定义它的函数或复合语句内才能使用它们.局部变量的生存期是从函数被调用的时刻算起到函数返回调用处的时刻结束.
扩展资料:
局部变量的作用域说明:
①.、主函数main()中定义的变量也只在主函数中有效,而不能因为在主函数中定义在整个文件或程序中有效.主函数也不能使用其他函数中定义的变量.因为主函数也是一个函数,它与其他函数是平行关系.这一点是与其他语言不同的,应予以注意.
必须用文件来保存变量.
变量保存在内存中,但是你程序退出了,内存都释放了,还怎么保持变量值不变.
必须用文件来保存变量值,程序开头要读文件,给变量赋值.
①.、FILE *fp;
fp=fopen("c:\\read.txt","w");
if(!fp) exit(0);
fprintf(fp,"%d,%d",a,b);
//下面是把三个变量存储到文件中
out=fopen("out.txt","w");
fprintf(out,"%d %d %c",a,b,c);
用LOCAL定义的变量或数组是局部变量或数组,局部变量或数组只能在创建它们的程序中使用和修改,不能被更高层次或者更低层次的程序访问,在它们所属的程序停止运行时,局部变量和数组将被释放.
用PRIVATR定义的变量和数组为私有数组.通过PRIVATE可将调用程序中定义的变量和数组在当前程序中隐藏起来,这样用户变可以在当前程序停止运行,所以被声明为私有的变量和数组均可重新被访问.
以上就是土嘎嘎小编为大家整理的c语言函数退出后的变量相关主题介绍,如果您觉得小编更新的文章只要能对粉丝们有用,就是我们最大的鼓励和动力,不要忘记讲本站分享给您身边的朋友哦!!