自动变量
表示自动类型的关键字 auto ,例如: auto int m;
使用自动变量应注意:
(1)、它是局部变量,其作用范围仅限于定义它的函数。在该函数内它的值存在,并且可以对它进行访问。一旦离开这个函数,它的值不再保留,也不能对它存取。
(2)、关键字auto通常被省略。就是说只要变量在函数内部被定义,并且没有显示给出其存储类,就认为它是自动的。大多数自动变量都是这样处理的。
(3)、在不同的函数中不同的自动变量可以使用相同的名称,它们的类型可以是相同或是相异,彼此互不干扰,甚至可以分配在同一存储单元中。自动变量还具有动态性,即:在每次使用之前必须赋初值;否则,其值是随机数。自动变量存放在用户区的动态存储区中。
(4)、函数形参具有自动变量的属性,即属于它所在的函数内。但应注意,在形参说明中不允许出现关键字auto。
(5)、在C语言中函数是分程序结构。一个分程序是一个复合语句,在其中定义的变量都是自动变量,它的作用范围是这个分程序。如果在分程序外面也定义了同名变量,那么,它们表示两个不同的自动变量,其值和活动范围都不一样。
寄存器变量
(1)、寄存器变量与自动变量的性质基本相同,也具有局部性和动态性。寄存器变量应该供给那些使用频繁的变量(如循环计数变量等)。
(2)、应注意只有某些数据类型的变量可放在寄存器中,例如int量、char量和指针量等。不能把浮点量和双精度量定义为寄存器变量。
(3)、还应注意取地址运算符&不能作用于寄存器变量。
外部变量
(1)、任何在函数定义之外定义的变量都是外部变量,此时,通常省略关键字extern。
(2)、外部变量是全局变量,其作用域是整个程序,即全局有效。外部变量定义之后,该程序下面所有的函数都可以对它进行存取或修改。它的值被永久保留,存放在用户空间的静态存储区中。这样,同一外部变量在两次函数调用期间能保持它先前的值。这些性质是与自动变量截然不同的。
(3)、自动变量可以与外部变量同名(当然最好区分开)。当按名存取时,优先使用自动变量。
(4)、在一个文件中,如果对外部变量先定义后使用,那么使用时往往省略extern说明。否则如果使用在先,定义在后,那么使用前必须对它们进行extern说明。应当指出,定义外部变量和说明外部变量是不同的概念。定义外部变量是在所有函数之外进行的,而且只能定义一次,在编译时系统根据外部变量的定义为它分配固定的存储单元;说明的作用是告诉编译程序,该变量是个外部变量,在别的地方已经做了定义,并不为它分配存储单元。
(5)、一个C程序可分开放在几个文件中。这样,对外部变量的定义和使用它们的函数就可能出现在不同的文件中。在组成一个程序的所有文件中,一个外部变量一定有且只能有一个定义。外部变量在一个文件中作了定义以后,在构成该程序的其他文件中使用它们时必须用关键字extern加以说明。
(6)、函数本质上都是外部的。按缺省约定,对函数定义和对函数说明时都省略了关键字extern。如果函数的定义在一个文件中,对它的调用在另一个文件中,那么在后者的开头应进行extern说明。
2022-11-30 · 百度认证:北京一天天教育科技有限公司官方账号,教育领域创作者
Python中变量作用域,变量的可用性范围。一段程序代码中所用到的名字并不总是有效可用的,而限定这个名字的可用性的代码范围就是这个名字的作用域。作用域的使用可提高程序逻辑的局部性,增强程序的可靠性减少名字冲突。
变量作用域就是变量的使用范围,从作用域角度区分,变量可分为全局变量和局部变量。
局部变量
①调用函数时,函数作用域被创建,函数执行完毕,函数作用域被销毁。
②每调用一次函数就会创建一个新的函数作用域,他们之间是相互独立的。
③在函数作用域中可以访问到全局作用域的变量,在函数外无法访问到函数作用域内的变量。
④在函数作用域中访问变量、函数时,会先在自身作用域中寻找,若没有找到,则会到函数的上一级作用域中寻找,一直到全局作用域。
⑤在函数作用域中也有声明提前的特性,对于变量和函数都起作用,此时函数作用域相当。
局部变量就是在函数内使用的变量,只能在函数内部使用。
全局变量
全局作用域在页面打开时被创建,页面关闭时被销毁;编写在script标签中的变量和函数,作用域为全局,在页面的任意位置都可以访问到;在全局作用域中有全局对象window,代表一个浏览器窗口,由浏览器创建,可以直接调用;全局作用域中声明的变量和函数会作为window对象的属性和方法保存。
全局变量就是在函数外定义的变量,可以在不同函数内使用。
一般都是从你定义的变量开始到文件结束(全局变量),函数或模块的结束(局部变量)。
不过,在一个文件中定义的全局变量,在另一个文件中不需重新定义,只需要声明一下(前面就加一个extern),就能够使用。,就能够将全局变量的作用域拓展到另一个文件中
static则限制了变量的extern的特性,它让全局变量只能老老实实的呆在家里,不能到外面去乱窜。
1、局部变量
局部变量是指在Python的函数或者循环内定义的变量,它的作用域就是只限于函数的内部,除了函数之外就不能再使用了。像是def nums():num
=10这就是一个最简单的函数,其中num就是在函数nums中定义的一个变量,num也只能在这个函数内使用。
需要注意的是,局部变量可以和其他局部变量名称相同,但不能和全部变量一样,否则会发生冲突。
2、全局变量
顾名思义,全局变量就是可以在整个Python程序内任意一个地方使用的函数,它必须定义在函数的外部或者是程序开始的头部位置。比如a=20,def
num():print(a)就是在函数外部定义了一个全局变量a,在函数num内部去使用它。
总的来讲,函数内部的就是局部变量,函数外部的就是全局变量。
#include<stdio.h>
int a;
void main()
{
int b;
while()
{
int d;
}
}
void fun()
{
int c;
}
如上,a是全局变量。bcd是局部变量。a在全局都可以调用。b只能在main中用。
d只能在while里用。
c只能在fun中用