全局变量、局部变量

一、变量(根据作用域的范围划分)

  1. 全局变量:在类里头,但在方法和语句块外定义的变量。
  2. 局部变量:在方法中或者语句块中定义的变量。

二、全局变量

  1. 实例全局变量:a.会默认初始化,归对象使用  b.随对象消亡而消亡
  2. 静态全局变量(static):a.会默认初始化,但可以不实例化,直接用类调用,在方法区的静态数据区开辟空间 b.当实例化对象时,对象会自动拥有静态全局变量 c.静态全局变量既可被类使用,亦可以被对象使用,归该类所有对象公有。缺点:1.增加该类所有对象的耦合性  2.当某一个对象错误改变这个值时,其他对象将错误使用该值

三、局部变量

不会默认初始化,由方法体来使用,在不同方法体中可以有相同变量,不需要GC(垃圾回收机制)
  1. 局部变量要定义,需要人为赋值才可使用
### 全局变量局部变量的区别 #### 定义位置差异 在函数体内部定义的变量被称为局部变量,而在函数体外部定义的变量则被称作全局变量。这种区分直接影响到它们可以在何处以及如何被访问修改[^2]。 #### 作用范围对比 - **局部变量**仅限于其所在函数体内可见并可操作;一旦离开该函数,则无法再对其进行任何处理。 - **全局变量**在整个程序范围内均能被识别及调用,即所有函数内均可自由存取这些数据项[^3]。 #### 生命周期特性 - 局部变量随着所属函数执行完毕后立即消失; - 全局变量的存在周期贯穿整个应用程序运行期间直至结束才会释放内存空间[^4]。 #### 访问优先级说明 当存在同名的局部变量全局变量时,在特定区域内会优先考虑使用局部版本的数据对象而不是覆盖掉它来查找相同名称下的另一个实例——这意味着即使两者名字一样,默认情况下也会先尝试定位最近一层内的局部实体作为目标进行读写动作。 ```c #include <stdio.h> // 声明一个全局变量 int globalVar = 10; void func() { int localVar = 20; // 这是一个局部变量 printf("Inside function, local variable value is %d\n", localVar); } int main(){ printf("Global variable before calling function: %d\n",globalVar); func(); // 尝试打印局部变量会导致编译错误因为main中不存在这个局部变量 //printf("%d",localVar); return 0; } ``` 上述代码展示了如何创建使用全局变量`globalVar`以及局部变量`localVar`。注意到了解何时应该采用哪种类型的变量对于编写清晰高效的代码至关重要。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值