3 6c语言,C语言程序设计6.6.3.pdf

本文介绍了程序中变量的两种存储方式:静态存储和动态存储。静态变量在程序运行期间始终保留其值,而动态变量在函数执行结束后其内存被释放。局部静态变量在函数内部定义,但其值在函数调用之间保持,全局静态变量则在整个文件内可见。自动变量(如局部变量)在函数调用时分配内存,并在函数结束时释放。理解这些概念对于编写高效和可靠的代码至关重要。
摘要由CSDN通过智能技术生成

时隐时现的数据-变量的存储属性

4 动态变量与静态变量

(1)变量的存储方式

静态存储:程序运行期间分配固定存储空间

动态存储:程序运行期间根据需要动态分配存储空间

((22 ))变量的生存期变量的生存期 变量值保留的期限变量值保留的期限

静态变量: 从程序开始执行到程序结束

动态变量: 从包含该变量定义的函数开始执行至函数执行结束

程序区

全局变量全局变量、局部静态变量局部静态变量

静态存储区 形参变量

局部动态变量(auto register)

动态存储区 函数调用现场保护和返回地址等

时隐时现的数据-变量的存储属性

(3)变量的存储类型

①自动变自动变量auto

自动变量存储特性:

•定义自动变量的函数被调用时,才为自动变量分配内存。

••函数函数调用结束时调用结束时 ,为自动变量分配的内存被释放为自动变量分配的内存被释放。

•自动变量仅在定义它的函数内部有效。

•自动变量被存放在内存的动态存储区。

结论 自动变量的生存期和可见性 (作用域 )仅限于定义

结论 :自动变量的生存期和可见性 (作用域 )仅限于定义

它的函数内部。自动变量是一种局部变量。

时隐时现的数据-变量的存储属性

int main()

{ int a,b,c,i; main( ) sum( )

int sum(int ,int );

for(i=0;i<3;i++) 17 17

83c 00083c

{ printf(“Enter a,b:\n”);

scanf(“%d%d”,&a,&b); 952b 952b

c=sum(a,b); 83a1 83a1

priintf(“Stf(“Sum=%d%d\\n””,c));

return 0;

} 输入:3 5

} 输入:1 2

int sum(int a,int b)

{ int c=0; 输入输入 ::88 99

{ int c=0;

c=c+a+b; 问题:

return(c); 在函数内部说明的变量是否都有这样的存储特性吗?

}

时隐时现的数据-变量的存储属性

②静态变量static

静态变量存储在内存的静态存储区,有固定的地址。

静态变量在程序运行期间,变量值自始至终保留。

静态变量static分为局部静态变量和全局静态变量。

局部静态变量 :函数内部定义,函数外不可见。程

序运行期间,值保留。

全局静态变量 :函数外定义,仅本文件内部其他函

数可以访问。

时隐时现的数据-变量的存储属性

#includ

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值