C语言动态变量和静态变量的区别一、形式不同C语言子函数中静态变量:
静态变量是在定义的时候,有static 修饰的变量,形式为static TYPE var_name = init_value;
动态变量,形式为TYPE var_name = init_valueC语言子函数中静态变量;即没有static 修饰,其中的=init_value均可省略 。
二、作用不同:
动态全局变量:作用域为整个项目 , 即最终编译成可执行文件的所有文件中均可以使用动态全局变量,生命周期为从程序运行到程序退出,即贯穿整个运行时间 。
静态全局变量:作用域为当前文件,从定义/声明位置到文件结尾,生命周期为从程序运行到程序退出 , 即贯穿整个运行时间 。
常量使用
静态变量也可以用于存储常数 。具体来说,静态变量(全局变量及汇编语言里定义的符号亦同)可用const , constant或final(根据语言决定)等关键字标识,这时其值就会在编译时设定,并且无法在运行时改变 。
编译器通常将静态常量与文本一起置于目标文件的文本区域 , 而非常量初始化数据则置于数据区C语言子函数中静态变量;而如若有需要,有些编译器还可选择为其开辟专用区;为防止常数变量被错误的指针写入覆盖,亦可在这块区域启用内存保护机制 。
以上内容参考:百度百科-静态变量
有关c语言函数静态变量静态变量是一种生存期为整个源程序的量 。虽然离开定义它的函数后不能使用 , 但如再次调用定义它的函数时 , 它又可继续使用,
而且保存了前次被调用后留下的值 。
第一个printf(
"%d\n",
func(k+=100)
);
k+=100,k就是200;
x++;
y++;
k++;
x=2,y=11,k=201;
所以第一次打印是214
第二个printf(
"%d\n",
func(k+=100)
);
k+=100,k就是300;
x++;
y++;
k++;
x=2,y=12,k=301;(y是静态变量,原值不变)
所以第二次打印是315
第三个printf(
"%d\n",
func(k+=100)
);
k+=100,k就是400;
x++;
y++;
k++;
x=2,y=13,k=401;(y是静态变量,原值不变)
所以第二次打印是416
c语言中静态变量是怎么用的#include"stdio.h"
【C语言子函数中静态变量 c语言函数中的静态变量】void
main()
{
int
f(int);
int
a=2,i;
for(i=0;i3;i++)
printf("%d
",f(a));
}
int
f(int
a)
{
auto
int
b=0;
//aubo为自动变量的标志C语言子函数中静态变量,则b为自动变量
static
int
c=3;//static
为静态局部变量的标志C语言子函数中静态变量,则c为静态局部变量
b=b+1;
//b为自动变量,则b一直等于1
c=c+1;
//c为静态局部变量,则c随着for循环分别为4,5,6
return(a+b+c);
}
所以运行的结果为C语言子函数中静态变量:7,8,9
注C语言子函数中静态变量:静态局部变量(静态变量)是在编译时赋初值的,即值赋初值一次,在程序运行时它已有初值,以后每次调用函数式不在重复赋初值而只在保留商城函数调用结束时的值 。
关于C语言子函数中静态变量和c语言函数中的静态变量的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站 。
推荐阅读
- 2018erp系统实施发展,erp系统发展完善了吗
- 微信和视频号有关联吗,微信和视频号的区别
- 能用游戏手柄玩的网络游戏,能用游戏手柄玩的网络游戏
- 直播录屏调色软件,直播屏幕录制软件
- php7数据列表 php list
- oracle数据库怎么打开已经做好的东西,oracle数据库文件怎么打开
- 人才招聘代理选哪家平台,人才代理什么编制
- 益智游戏加强版教案,益智游戏教案设计意图
- python关闭程序函数 python如何关闭程序