C++ 变量作用域
一般来说有三个地方可以定义变量:
-
在函数或一个代码块内部声明的变量,称为局部变量。
-
在函数参数的定义中声明的变量,称为形式参数。
-
在所有函数外部声明的变量,称为全局变量。
作用域是程序的一个区域,变量的作用域可以分为以下几种:
-
局部作用域:在函数内部声明的变量具有局部作用域,它们只能在函数内部访问。局部变量在函数每次被调用时被创建,在函数执行完后被销毁。
-
全局作用域:在所有函数和代码块之外声明的变量具有全局作用域,它们可以被程序中的任何函数访问。全局变量在程序开始时被创建,在程序结束时被销毁。
-
块作用域:在代码块内部声明的变量具有块作用域,它们只能在代码块内部访问。块作用域变量在代码块每次被执行时被创建,在代码块执行完后被销毁。
-
类作用域:在类内部声明的变量具有类作用域,它们可以被类的所有成员函数访问。类作用域变量的生命周期与类的生命周期相同。
注意:如果在内部作用域中声明的变量与外部作用域中的变量同名,则内部作用域中的变量将覆盖外部作用域中的变量。
局部变量
在函数或一个代码块内部声明的变量,称为局部变量。它们只能被函数内部或者代码块内部的语句使用。下面的实例使用了局部变量:
https://avg.163.com/topic/detail/12450067
https://avg.163.com/M/topic/detail/12450067
https://avg.163.com/topic/detail/12450081
https://avg.163.com/M/topic/detail/12450081
https://avg.163.com/topic/detail/12450072
https://avg.163.com/M/topic/detail/12450072
https://avg.163.com/topic/detail/12640303
https://avg.163.com/M/topic/detail/12640303
https://avg.163.com/topic/detail/12640300
https://avg.163.com/M/topic/detail/12640300
https://avg.163.com/topic/detail/12450083
https://avg.163.com/M/topic/detail/12450083
https://avg.163.com/topic/detail/12450096
https://avg.163.com/M/topic/detail/12450096
https://avg.163.com/topic/detail/12450062
https://avg.163.com/M/topic/detail/12450062
https://avg.163.com/topic/detail/12449831
https://avg.163.com/M/topic/detail/12449831
https://avg.163.com/topic/detail/12450059
https://avg.163.com/M/topic/detail/12450059
https://avg.163.com/topic/detail/12450099
https://avg.163.com/M/topic/detail/12450099
https://avg.163.com/topic/detail/12450065
https://avg.163.com/M/topic/detail/12450065
https://avg.163.com/topic/detail/12640274
https://avg.163.com/M/topic/detail/12640274
https://avg.163.com/topic/detail/12640275
https://avg.163.com/M/topic/detail/12640275
https://avg.163.com/topic/detail/12640273
https://avg.163.com/M/topic/detail/12640273
https://avg.163.com/topic/detail/12640269
https://avg.163.com/M/topic/detail/12640269
https://avg.163.com/topic/detail/12640272
https://avg.163.com/M/topic/detail/12640272
https://avg.163.com/topic/detail/12450054
https://avg.163.com/M/topic/detail/12450054
https://avg.163.com/topic/detail/12640267
https://avg.163.com/M/topic/detail/12640267
https://avg.163.com/topic/detail/12450058
https://avg.163.com/M/topic/detail/12450058
https://avg.163.com/topic/detail/12640265
https://avg.163.com/M/topic/detail/12640265
https://avg.163.com/topic/detail/12640263
https://avg.163.com/M/topic/detail/12640263
https://avg.163.com/topic/detail/12640257
https://avg.163.com/M/topic/detail/12640257
https://avg.163.com/topic/detail/12450049
https://avg.163.com/M/topic/detail/12450049
https://avg.163.com/topic/detail/12450051
https://avg.163.com/M/topic/detail/12450051
https://avg.163.com/topic/detail/12450063
https://avg.163.com/M/topic/detail/12450063
https://avg.163.com/topic/detail/12450041
https://avg.163.com/M/topic/detail/12450041
https://avg.163.com/topic/detail/12450060
https://avg.163.com/M/topic/detail/12450060
https://avg.163.com/topic/detail/12450038
https://avg.163.com/M/topic/detail/12450038
https://avg.163.com/topic/detail/12450235
https://avg.163.com/M/topic/detail/12450235
https://avg.163.com/topic/detail/12450039
https://avg.163.com/M/topic/detail/12450039
https://avg.163.com/topic/detail/12450036
https://avg.163.com/M/topic/detail/12450036
https://avg.163.com/topic/detail/12450034
https://avg.163.com/M/topic/detail/12450034
https://avg.163.com/topic/detail/12450268
https://avg.163.com/M/topic/detail/12450268
https://avg.163.com/topic/detail/12640228
https://avg.163.com/M/topic/detail/12640228
https://avg.163.com/topic/detail/12640227
https://avg.163.com/M/topic/detail/12640227
https://avg.163.com/topic/detail/12450037
https://avg.163.com/M/topic/detail/12450037
https://avg.163.com/topic/detail/12450269
https://avg.163.com/M/topic/detail/12450269
https://avg.163.com/topic/detail/12450264
https://avg.163.com/M/topic/detail/12450264
https://avg.163.com/topic/detail/12640231
https://avg.163.com/M/topic/detail/12640231
https://avg.163.com/topic/detail/12640229
https://avg.163.com/M/topic/detail/12640229
https://avg.163.com/topic/detail/12640204
https://avg.163.com/M/topic/detail/12640204
https://avg.163.com/topic/detail/12450243
https://avg.163.com/M/topic/detail/12450243
https://avg.163.com/topic/detail/12450271
https://avg.163.com/M/topic/detail/12450271
https://avg.163.com/topic/detail/12450239
https://avg.163.com/M/topic/detail/12450239
https://avg.163.com/topic/detail/12450273
https://avg.163.com/M/topic/detail/12450273
https://avg.163.com/topic/detail/12450270
https://avg.163.com/M/topic/detail/12450270
https://avg.163.com/topic/detail/12450262
https://avg.163.com/M/topic/detail/12450262
https://avg.163.com/topic/detail/12450261
https://avg.163.com/M/topic/detail/12450261
https://avg.163.com/topic/detail/12640201
https://avg.163.com/M/topic/detail/12640201
https://avg.163.com/topic/detail/12640206
https://avg.163.com/M/topic/detail/12640206
https://avg.163.com/topic/detail/12640202
https://avg.163.com/M/topic/detail/12640202
https://avg.163.com/topic/detail/12640198
https://avg.163.com/M/topic/detail/12640198
https://avg.163.com/topic/detail/12640195
https://avg.163.com/M/topic/detail/12640195
https://avg.163.com/topic/detail/12640188
https://avg.163.com/M/topic/detail/12640188
https://avg.163.com/topic/detail/12640192
https://avg.163.com/M/topic/detail/12640192
https://avg.163.com/topic/detail/12640190
https://avg.163.com/M/topic/detail/12640190
https://avg.163.com/topic/detail/12640186
https://avg.163.com/M/topic/detail/12640186
https://avg.163.com/topic/detail/12450240
https://avg.163.com/M/topic/detail/12450240
https://avg.163.com/topic/detail/12450254
https://avg.163.com/M/topic/detail/12450254
https://avg.163.com/topic/detail/12450241
https://avg.163.com/M/topic/detail/12450241
https://avg.163.com/topic/detail/12450246
https://avg.163.com/M/topic/detail/12450246
https://avg.163.com/topic/detail/12450248
https://avg.163.com/M/topic/detail/12450248
https://avg.163.com/topic/detail/12450237
https://avg.163.com/M/topic/detail/12450237
https://avg.163.com/topic/detail/12450255
https://avg.163.com/M/topic/detail/12450255
https://avg.163.com/topic/detail/12640180
https://avg.163.com/M/topic/detail/12640180
https://avg.163.com/topic/detail/12640179
https://avg.163.com/M/topic/detail/12640179
https://avg.163.com/topic/detail/12640178
https://avg.163.com/M/topic/detail/12640178
https://avg.163.com/topic/detail/12640176
https://avg.163.com/M/topic/detail/12640176
https://avg.163.com/topic/detail/12640177
https://avg.163.com/M/topic/detail/12640177
https://avg.163.com/topic/detail/12640175
https://avg.163.com/M/topic/detail/12640175
https://avg.163.com/topic/detail/12640174
https://avg.163.com/M/topic/detail/12640174
https://avg.163.com/topic/detail/12640173
https://avg.163.com/M/topic/detail/12640173
https://avg.163.com/topic/detail/12640172
https://avg.163.com/M/topic/detail/12640172
https://avg.163.com/topic/detail/12640171
https://avg.163.com/M/topic/detail/12640171
https://avg.163.com/topic/detail/12640170
https://avg.163.com/M/topic/detail/12640170
https://avg.163.com/topic/detail/12640165
https://avg.163.com/M/topic/detail/12640165
https://avg.163.com/topic/detail/12640162
https://avg.163.com/M/topic/detail/12640162
https://avg.163.com/topic/detail/12450218
https://avg.163.com/M/topic/detail/12450218
https://avg.163.com/topic/detail/12450219
https://avg.163.com/M/topic/detail/12450219
https://avg.163.com/topic/detail/12450230
https://avg.163.com/M/topic/detail/12450230
https://avg.163.com/topic/detail/12640151
https://avg.163.com/M/topic/detail/12640151
https://avg.163.com/topic/detail/12640143
https://avg.163.com/M/topic/detail/12640143
https://avg.163.com/topic/detail/12640145
https://avg.163.com/M/topic/detail/12640145
https://avg.163.com/topic/detail/12450167
https://avg.163.com/M/topic/detail/12450167
https://avg.163.com/topic/detail/12450250
https://avg.163.com/M/topic/detail/12450250
https://avg.163.com/topic/detail/12450201
https://avg.163.com/M/topic/detail/12450201
https://avg.163.com/topic/detail/12450231
https://avg.163.com/M/topic/detail/12450231
https://avg.163.com/topic/detail/12450214
https://avg.163.com/M/topic/detail/12450214
https://avg.163.com/topic/detail/12450221
https://avg.163.com/M/topic/detail/12450221
https://avg.163.com/topic/detail/12450191
https://avg.163.com/M/topic/detail/12450191
https://avg.163.com/topic/detail/12640128
https://avg.163.com/M/topic/detail/12640128
https://avg.163.com/topic/detail/12450216
https://avg.163.com/M/topic/detail/12450216
https://avg.163.com/topic/detail/12450228
https://avg.163.com/M/topic/detail/12450228
https://avg.163.com/topic/detail/12450215
https://avg.163.com/M/topic/detail/12450215
https://avg.163.com/topic/detail/12450194
https://avg.163.com/M/topic/detail/12450194
https://avg.163.com/topic/detail/12450212
https://avg.163.com/M/topic/detail/12450212
https://avg.163.com/topic/detail/12640126
https://avg.163.com/M/topic/detail/12640126
https://avg.163.com/topic/detail/12640123
https://avg.163.com/M/topic/detail/12640123
https://avg.163.com/topic/detail/12640116
https://avg.163.com/M/topic/detail/12640116
https://avg.163.com/topic/detail/12640121
https://avg.163.com/M/topic/detail/12640121
https://avg.163.com/topic/detail/12640120
https://avg.163.com/M/topic/detail/12640120
https://avg.163.com/topic/detail/12450207
https://avg.163.com/M/topic/detail/12450207
https://avg.163.com/topic/detail/12450197
https://avg.163.com/M/topic/detail/12450197
https://avg.163.com/topic/detail/12450203
https://avg.163.com/M/topic/detail/12450203
https://avg.163.com/topic/detail/12450205
https://avg.163.com/M/topic/detail/12450205
https://avg.163.com/topic/detail/12450193
https://avg.163.com/M/topic/detail/12450193
https://avg.163.com/topic/detail/12640109
https://avg.163.com/M/topic/detail/12640109
https://avg.163.com/topic/detail/12640108
https://avg.163.com/M/topic/detail/12640108
https://avg.163.com/topic/detail/12640105
https://avg.163.com/M/topic/detail/12640105
https://avg.163.com/topic/detail/12640102
https://avg.163.com/M/topic/detail/12640102
https://avg.163.com/topic/detail/12640096
https://avg.163.com/M/topic/detail/12640096
https://avg.163.com/topic/detail/12640099
https://avg.163.com/M/topic/detail/12640099
https://avg.163.com/topic/detail/12640094
https://avg.163.com/M/topic/detail/12640094
https://avg.163.com/topic/detail/12640090
https://avg.163.com/M/topic/detail/12640090
https://avg.163.com/topic/detail/12450147
https://avg.163.com/M/topic/detail/12450147
https://avg.163.com/topic/detail/12450164
https://avg.163.com/M/topic/detail/12450164
https://avg.163.com/topic/detail/12450150
https://avg.163.com/M/topic/detail/12450150
https://avg.163.com/topic/detail/12450149
https://avg.163.com/M/topic/detail/12450149
https://avg.163.com/topic/detail/12450154
https://avg.163.com/M/topic/detail/12450154
https://avg.163.com/topic/detail/12450155
https://avg.163.com/M/topic/detail/12450155
https://avg.163.com/topic/detail/12450146
https://avg.163.com/M/topic/detail/12450146
https://avg.163.com/topic/detail/12450148
https://avg.163.com/M/topic/detail/12450148
https://avg.163.com/topic/detail/12640081
https://avg.163.com/M/topic/detail/12640081
https://avg.163.com/topic/detail/12450187
https://avg.163.com/M/topic/detail/12450187
https://avg.163.com/topic/detail/12640079
https://avg.163.com/M/topic/detail/12640079
https://avg.163.com/topic/detail/12640078
https://avg.163.com/M/topic/detail/12640078
https://avg.163.com/topic/detail/12640077
https://avg.163.com/M/topic/detail/12640077
https://avg.163.com/topic/detail/12640076
https://avg.163.com/M/topic/detail/12640076
https://avg.163.com/topic/detail/12640066
https://avg.163.com/M/topic/detail/12640066
https://avg.163.com/topic/detail/12640056
https://avg.163.com/M/topic/detail/12640056
https://avg.163.com/topic/detail/12640052
https://avg.163.com/M/topic/detail/12640052
https://avg.163.com/topic/detail/12450196
https://avg.163.com/M/topic/detail/12450196
https://avg.163.com/topic/detail/12640046
https://avg.163.com/M/topic/detail/12640046
https://avg.163.com/topic/detail/12450192
https://avg.163.com/M/topic/detail/12450192
https://avg.163.com/topic/detail/12450165
https://avg.163.com/M/topic/detail/12450165
https://avg.163.com/topic/detail/12640044
https://avg.163.com/M/topic/detail/12640044
https://avg.163.com/topic/detail/12640038
https://avg.163.com/M/topic/detail/12640038
https://avg.163.com/topic/detail/12640036
https://avg.163.com/M/topic/detail/12640036
https://avg.163.com/topic/detail/12450168
https://avg.163.com/M/topic/detail/12450168
https://avg.163.com/topic/detail/12640034
https://avg.163.com/M/topic/detail/12640034
https://avg.163.com/topic/detail/12450181
https://avg.163.com/M/topic/detail/12450181
https://avg.163.com/topic/detail/12450162
https://avg.163.com/M/topic/detail/12450162
https://avg.163.com/topic/detail/12450184
https://avg.163.com/M/topic/detail/12450184
https://avg.163.com/topic/detail/12450188
https://avg.163.com/M/topic/detail/12450188
https://avg.163.com/topic/detail/12450175
https://avg.163.com/M/topic/detail/12450175
https://avg.163.com/topic/detail/12450180
https://avg.163.com/M/topic/detail/12450180
https://avg.163.com/topic/detail/12450156
https://avg.163.com/M/topic/detail/12450156
https://avg.163.com/topic/detail/12450166
https://avg.163.com/M/topic/detail/12450166
https://avg.163.com/topic/detail/12450172
https://avg.163.com/M/topic/detail/12450172
https://avg.163.com/topic/detail/12450183
https://avg.163.com/M/topic/detail/12450183
https://avg.163.com/topic/detail/12450185
https://avg.163.com/M/topic/detail/12450185
https://avg.163.com/topic/detail/12450179
https://avg.163.com/M/topic/detail/12450179
https://avg.163.com/topic/detail/12450157
https://avg.163.com/M/topic/detail/12450157
https://avg.163.com/topic/detail/12450176
https://avg.163.com/M/topic/detail/12450176
https://avg.163.com/topic/detail/12640030
https://avg.163.com/M/topic/detail/12640030
实例
#include <iostream> using namespace std; int main () { // 局部变量声明 int a, b; int c; // 实际初始化 a = 10; b = 20; c = a + b; cout << c; return 0; }
全局变量
在所有函数外部定义的变量(通常是在程序的头部),称为全局变量。全局变量的值在程序的整个生命周期内都是有效的。
全局变量可以被任何函数访问。也就是说,全局变量一旦声明,在整个程序中都是可用的。下面的实例使用了全局变量和局部变量:
实例
#include <iostream> using namespace std; // 全局变量声明 int g; int main () { // 局部变量声明 int a, b; // 实际初始化 a = 10; b = 20; g = a + b; cout << g; return 0; }
在程序中,局部变量和全局变量的名称可以相同,但是在函数内,局部变量的值会覆盖全局变量的值。下面是一个实例:
实例
#include <iostream> using namespace std; // 全局变量声明 int g = 20; int main () { // 局部变量声明 int g = 10; cout << g; return 0; }
当上面的代码被编译和执行时,它会产生下列结果:
10
初始化局部变量和全局变量
当局部变量被定义时,系统不会对其初始化,您必须自行对其初始化。定义全局变量时,系统会自动初始化为下列值:
转载自CSDN-专业IT技术社区
原文链接:https://blog.csdn.net/2601_95346995/article/details/158432708



