C++ 变量

变量是与可以更改的值相关联的名称。例如,当我写int num=20;时,变量名是num,它与值 20 相关联,int是数据类型,表示该变量可以保存整数值。我们将在下一个教程中介绍数据类型。在本教程中,我们将讨论变量。

在 C++ 中声明变量的语法

data_type variable1_name = value1, variable2_name = value2;

例如:

int num1=20, num2=100;

我们也可以这样写:

int num1,num2;
num1=20;
num2=100;

变量的类型

变量可以根据其数据类型进行分类。例如,在上面的例子中,我们看到了整数类型变量。以下是 C++ 中可用的变量类型。

int :这些类型的变量保存整数值。

char :保存字符值,如'c''F''B''p''q'等。

bool :保存布尔值为truefalse

double :双精度浮点值。

float :单精度浮点值。

基于作用域的变量类型

在进一步讨论之前,先讨论什么是作用域。当我们讨论 Hello World 程序时,我们在程序中看到了这样的大括号:

int main {

//Some code

}

在这些花括号内声明的任何变量都限制在这些花括号中,如果你在main()函数中声明一个变量并尝试在main()函数之外使用该变量,那么你将得到编译错误。

现在我们已经理解了什么是作用域。让我们根据作用域转向变量类型。

  1. 全局变量
  2. 局部变量

全局变量

在任何函数之外声明的变量(包括main)也称为全局变量。全局变量拥有整个程序中的作用域,它们可以在程序的任何地方,主函数,用户定义的函数中的任何地方访问。

让我们举个例子来理解它:

全局变量示例

这里我们有一个全局变量myVar,它在main之外声明。我们在main()函数中访问了变量两次而没有任何问题。

#include <iostream>
using namespace std;
// This is a global variable
char myVar = 'A';
int main()
{
   cout <<"Value of myVar: "<< myVar<<endl;
   myVar='Z';
   cout <<"Value of myVar: "<< myVar;
   return 0;
}

输出:

Value of myVar: A
Value of myVar: Z

局部变量

局部变量在任何用户定义函数,主函数,循环或任何控制语句(ifif-else等)的大括号内声明,并且其作用域限制在这些大括号内。

局部变量的例子

#include <iostream>
using namespace std;

char myFuncn() {
// This is a local variable
char myVar = 'A';
}
int main()
{
   cout <<"Value of myVar: "<< myVar<<endl;
   myVar='Z';
   cout <<"Value of myVar: "<< myVar;
   return 0;
}

输出:

编译时错误,因为我们试图在其作用域之外访问变量myVarmyVar的作用域仅限于这些括号内的函数体myFuncn()

全局变量和局部变量可以在 C++ 中具有相同的名称吗?

让我们看一个具有相同名称的全局变量和局部变量的示例。

#include <iostream>
using namespace std;
// This is a global variable
char myVar = 'A';
char myFuncn() {
   // This is a local variable
   char myVar = 'B';
   return myVar;
}
int main()
{
   cout <<"Funcn call: "<< myFuncn()<<endl;
   cout <<"Value of myVar: "<< myVar<<endl;
   myVar='Z';
   cout <<"Funcn call: "<< myFuncn()<<endl;
   cout <<"Value of myVar: "<< myVar<<endl;
   return 0;
}

输出:

Funcn call: B
Value of myVar: A
Funcn call: B
Value of myVar: Z

正如您所看到的,当我在main函数中更改myVar的值时,它只更改了全局变量myVar的值,因为局部变量myVar作用域仅限于函数myFuncn()

赞(0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址