[Powered by Google Translate] JOE MCCORMICK：所以，现在我们要谈论变量。
计算机科学中的变量的方式来存储值。
现在，我们如何存储，
是不是太重要的价值。
我们可以有一个值，就是一个字，这可能
作为字符串存储。
或者，我们可以拥有的东西，是一个字符，
像字母。
这将是存储一个char。
我们可以有一个数字，如1或12，这将是
存储为整数或整数。
然后，我们有不同的事情，比如一个浮点数，它可以存储
事情，比如1.01或111.13。
这些价值往往被称之为可变的。
这意味着如果我们在数储存到一个整数
顶部的程序后，我们可以改变这个数字，
是三个或7。
现在，一个局部变量是什么，你通常会遇到的，
当执行一个函数。
因此，让我们说你是在您的主要功能。
你想创建一个变量名为num。
我们将存储的整数。
因此，我们可以说的东西，如int NUM = 3。
现在，你去那里。
你有一个局部变量。
现在，这个变量可以被改变，以后在主
功能，通过说一些像数= 6或num = 7。
但在您的变量被卡住
该函数的范围。
和范围，通常开始的大括号
主要开始和结束的花括号，
关闭的主要功能。
此局部变量，现在停留在这个范围内。
因此，它可以不再被访问在另一个函数，
以外的主要功能。
而一旦主要功能执行完毕
返回时，这个局部变量名为num已经一去不复返了。
因此，在局部变量相比，我们有一些
所谓的全局变量。
现在，声明一个全局变量在顶部的
程序，可以在程序的任何地方访问。
因此，让我们说你声明一个全局变量的顶部
你的程序，名为test。
现在，这个变量可以访问
在程序的任何地方。
您可以访问它的主要功能或功能
以下。
但是，如果你曾经尝试创建一个局部变量中的一个
这些功能，用相同的名称作为
测试中，有冲突。
因为，你不知道你要使用哪个变量。
你想使用的全球测试，
声明在顶部节目吗？
或者你要使用的局部变量测试
你想在这个函数中创建的吗？
现在，这是为什么我们不想要的原因之一
只是自由使用全局变量。
有一种叫做凌乱的名字空间。
即使你不是故意的，你可能会意外地创建一个
局部变量，后来在节目中，具有相同
作为全局变量的名称。
这并不构成一个巨大的问题，当你工作
小10，20，30行程序。
一旦你有成千上万行的代码，你会不会
记得很清楚你所存储的全局变量。
因此，人们要考虑的事情，当使用本地和全球
变量是想对他们的范围。
现在，范围是指，这些变量可以用在
该方案。
因此，有什么所谓的全球范围内的全局变量，
这意味着它可以在任何地方使用该程序。
一旦初始化变量，它可以用来在
任何功能，不管它是主要功能或
功能10种功能下降，称为foo10。
不要紧，在您使用它。
但是，一个局部变量的具体范围。
而且，局部变量的范围是由
它被初始化。
现在，范围通常由开口
大括号的函数中声明的变量，直到
该函数的右括号。
因此，让我们说，你是在主函数中。
创建一个变量。
但是现在，在这个主要功能，我们调用另一个
函数foo。
在函数foo中，我们可以不叫变量，我们只是
在主函数中创建的，因为它是不在范围之内。
这个变量只有在范围内的主要功能。
因此，我们可以使用它进一步，在主函数中，但
不属于一个从main函数调用的函数。
因此，像栈和堆，全局变量
存储在存储器的某一部分。
现在，这部分的内存的系统上
你使用。
全局变量有两个不同的点，他们是
存储，一个用于初始化的全局变量，例如，如果
你宣布整数测试= 5，在你的程序的顶部。
而其他区域是未初始化的全局变量，
如果你刚才说的，诠释的测试，在你的程序的顶部，
要测试变量
后来在节目中。
所以我现在要谈论一些所谓的定义，
这是一种给一个象征性的名称为一个常数。
在这里，我们有一个例子，一个C程序，计算
一个圆的面积。
在上面的程序中，我们会做的东西，说
的＃define PI 3.14159。
＃定义了，技术上不创建一个全局变量。
相反，它告诉编译器的预处理
查找和替换所有实例的圆周率
3.14159，然后再编译。
然而，它成为一个有用的技术，用于声明
常量，在整个程序中使用。
现在，寻找的区域处的功能，需要在一个float
rad和简单的返回一个圆的面积与
半径或PIŕ平方，或PI倍弧度倍弧度。
这是其中的＃define起着关键的作用。
因为编译器将基本上取代，PI
的数目的符号与3.14159。
因此，我们不必写一遍又一遍。
以后，如果我们决定使用更圆周率，让我们
说3.1415926，我们可以补充一点，顶部的
计划，并没有改变它，
后来在节目中。
这是一个很好的使用＃define。
我们不希望，因为它作为一个全局变量来存储PI
以后可能会改变的计划。
我们知道圆周率不会改变。
它是一个常数。
所以这个包的全局变量，我们的话题。
所以，今天我们谈到的区别本地和
全局变量时，使用他们，根据他们的
范围，为什么不使用全局变量会
因为杂乱的名称空间。
我乔·麦考密克。
这是CS50。