静态局部变量的值(static局部变量)和自动变量(auto变量)的说明

简介: 静态局部变量的值(static局部变量):有时希望函数中的局部变量的值在函数调用结束后不消失而继续保留原值,即其占用的存储单元不释放,在下一次调用该函数时,该变量已有值(就是上一次函数调用结束时的值),这时就应该指定该局部变量为“静态局部变量”,用关键字static进行声明。

静态局部变量的值(static局部变量):

有时希望函数中的局部变量的值在函数调用结束后不消失而继续保留原值,即其占用的存储单元不释放,在下一次调用该函数时,该变量已有值(就是上一次函数调用结束时的值),这时就应该指定该局部变量为“静态局部变量”,用关键字static进行声明。


自动变量(auto变量)


函数中的局部变量,如果不专门声明为static(静态)存储类别,都是动态地分配存储空间的,数据存储在动态存储去中,函数中的形参和在函数中定义的局部变量(包括在复合语句中定义的局部变量),都属于此类。在调用该函数时,系统会给这些变量分配存储空间,在函数调用结束时就自动释放这些存储空间。


实际上,关键字auto可以省略,不写auto则隐含指定为“自动存储类别”

目录
相关文章
|
22天前
|
开发者
局部变量,在使用时再定义
关于局部变量,适时定义可以提高代码可读性并规避不必要的bug。示例代码中,为了避免误解`checkTaskApplyDTO`仅设置了`userId`,在`existAppliedTask`方法内部,可以通过将`checkTaskApplyDTO`的定义与设置属性的操作靠近,以明确其所有属性值的来源。 另外,本文还展示了一个因提前定义变量`ret`而导致的bug实例。如果将此变量的定义延迟至其实际使用前,则可以避免此类问题。适时定义变量有助于减少混淆,提高代码质量。
22 4
|
1月前
变量不初始化
【7月更文挑战第2天】变量不初始化。
25 0
|
3月前
3.默认值不一样【重点】 局部变量:没有默认值,如果要想使用,必须手动进行赋值 成员变量:如果没有赋值,会有默认值,规则和数组一样 4.内存的位置不一样(了解) 局部变量:位于栈内存 成员变量:位于堆内存 5生命周期不一样(了解)
3.默认值不一样【重点】 局部变量:没有默认值,如果要想使用,必须手动进行赋值 成员变量:如果没有赋值,会有默认值,规则和数组一样 4.内存的位置不一样(了解) 局部变量:位于栈内存 成员变量:位于堆内存 5生命周期不一样(了解)
31 0
|
3月前
|
Python
DTL变量
【2月更文挑战第28天】DTL变量。
29 1
|
10月前
|
编译器 C语言 C++
const修饰的究竟是常量还是变量?
const修饰的究竟是常量还是变量?
70 0
|
3月前
|
编译器 C++
C++:编译器对被const修饰变量的处理行为(替换)
C++:编译器对被const修饰变量的处理行为(替换)
22 0
思考变量引起的巨大变化
思考变量引起的巨大变化
|
8月前
|
编译器 C++
const修饰的变量通过指针修改的问题
const修饰的变量通过指针修改的问题
69 0
|
NoSQL Go 数据库
慎写指针类型的全局变量
慎写指针类型的全局变量
65 0
慎写指针类型的全局变量
|
人工智能 Shell
将结果分别赋值给变量
将结果分别赋值给变量
55 0