C++ 变量

来源:这里教程网 时间:2026-02-16 16:03:39 作者:

变量是与可以更改的值相关联的名称。例如,当我写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 :保存布尔值为true或false。

double :双精度浮点值。

float :单精度浮点值。

基于作用域的变量类型

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

int main {//Some code}

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

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

    全局变量局部变量

全局变量

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

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

全局变量示例

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

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

输出:

Value of myVar: AValue of myVar: Z

局部变量

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

局部变量的例子

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

输出:

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

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

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

#include <iostream>using namespace std;// This is a global variablechar 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: BValue of myVar: AFuncn call: BValue of myVar: Z

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

相关推荐