日期: 2022-09-21 03:23:52 浏览数:4

上往建站提供服务器空间服务商,百度快照排名,网站托管,百度推广运营,致力于设计外包服务与源代码定制开发,360推广,搜狗推广,增加网站的能见度及访问量提升网络营销的效果,主营:网站公司,百度推广公司电话,官网搭建服务,网站服务企业排名,服务器空间,英文域名等业务,专业团队服务,效果好。
博白网页设计-高端网站设计公司

static int a=1; a++;
printf("%d ",a);
}
int main(void)
{
fun();
fun();
return 0;
}
程序执行结果为: 2 3
说明在第二次调用fun()函数时,a的值为2,并且没有进行初始化赋值,直接进行自增运算,所以得到的结果为3.
对于静态局部变量如果没有进行初始化的话,对于整形变量系统会自动对其赋值为0,对于字符数组,会自动赋值为''.
(2)修饰全局变量
对于一个全局变量,它既可以在本源文件中被访问到,也可以在同一个工程的其它源文件中被访问(只需用extern进行声明即可)。
如:
//有file1.c
int a=1;
file2.c
#include<stdio.h>
extern int a;
int main(void)
{
printf("%d",a);
return 0;
}
则执行结果为 1
但是如果在 file1.c 中把 int a=1 改为 static int a=1;
那么在file2.c是无法访问到变量a的。原因在于用static对全局变量进行修饰改变了其作用域的范围,由原来的整个工程可见变为本源文件可见。
(3)修饰函数
用static修饰函数的话,情况与修饰全局变量大同小异,就是改变了函数的作用域。
更多参考内容:C 语言中 static 的作用
FK
FK
421***224@qq.com
参考地址
5年前 (2018-01-29)
学以解忧
145***3462@qq.com
22
static 的用法
用来说明静态变量 ,如果是在函数的,那么其效果和全局变量类似 。但是,static定义的变量只能在当前 c 程序文件中使用,在另一个 c 代码里面 , 即使使用 extern 关键词也不能访问这个static变量。如果实在函数内部定义的,那么这个变量只初始化一次,即使再次调用这个函数,这个static变量也不会再次初始化 , 这个变量的取值就会一直保存着,也就是说,当你再次调用这个函数的时候,里面用到这个static变量时,就会发现,它还是上一次函数调用时的结果。
实例 static.c:
上往建站提供搭建网站,域名注册,官网备案服务,网店详情页设计,企业网店,专业网络店铺管理运营全托管公司咨询电话,服务器空间,微信公众号托管,网页美工排版,致力于域名申请,竞价托管,软文推广,全网营销,提供标准级专业技术保障,了却后顾之忧,主营:虚拟主机,网站推广,百度竞价托管,网站建设,上网建站推广服务,网络公司有哪些等业务,专业团队服务,效果好。
服务热线:400-111-6878 手机微信同号:18118153152(各城市商务人员可上门服务)
ister变量:动态和静态变量都是存放在内存中,程序中遇到该值时用控制器发指令将变量的值送到运算器中,需要存数再保存到内存中。如果频繁使用一个变量,比如一个函数体内的多次循环每次都引用该局部变量,我们则可以把局部变量的值放到CPU的寄存器中,叫寄存器变量。不需要多次到内存中存取提高效率。但是只能局部自动变量和形参可以做寄存器变量。在函数调用时占用一些寄存器,函数结束时释放。不同系统对register要求也不一样,比如对定义register变量个数,数据类型等限制,有的默认为自动变量处理。所以在程序一般也不用。
实例 register.c
#include <stdio.h>#include <time.h>#define TIME 1000000000int m, n = TIME; /* 全局变量 */int main(void){ time_t start, stop; register int a, b = TIME; /* 寄存器变量 */ int x, y = TIME; /* 一般变量 */ time(&start); for (a = 0; a < b; a++); time(&stop); printf("寄存器变量用时: %ld 秒 ", stop - start); time(&start); for (x = 0; x < y; x++); time(&stop); printf("一般变量用时: %ld 秒 ", stop - start); time(&start); for (m = 0; m < n; m++); time(&stop); printf("全局变量用时: %ld 秒 ", stop - start); return 0;}输出结果:
小军
198***0646@qq.com
参考地址
FK
421***224@qq.com
参考地址
在 C 语言中,static 可以用来修饰局部变量,全局变量以及函数。在不同的情况下 static 的作用不尽相同。
(1)修饰局部变量
一般情况下,对于局部变量是存放在栈区的,并且局部变量的生命周期在该语句块执行结束时便结束了。但是如果用static进行修饰的话,该变量便存放在静态数据区,其生命周期一直持续到整个程序执行结束。但是在这里要注意的是,虽然用static对局部变量进行修饰过后,其生命周期以及存储空间发生了变化,但是其作用域并没有改变,其仍然是一个局部变量,作用域仅限于该语句块。
在用static修饰局部变量后,该变量只在初次运行时进行初始化工作,且只进行一次。
如:
#include<stdio.h> void fun() { static int a=1; a++; printf("%d ",a); }