1、变量的定义
声明变量的基本语法如下:
type variableName;
其中 type
是变量的类型,variableName
是变量的名称。
另外,可以在声明变量时进行初始化,如:
int d = 3, f = 5; // 定义并初始化 d 和 f
变量定义就是告诉编译器在何处创建变量的存储,以及如何创建变量的存储。我理解为,在创建变量时相当于在干两个事情,一、找一个存储变量的地址;二、往上面存储值(有初始化时)。
2、C++ 中的左值(Lvalues)和右值(Rvalues)
理解C++的左值和右值,可以更好地理解变量的定义。
C++ 中有两种类型的表达式:
- 左值(lvalue):指向内存位置的表达式被称为左值(lvalue)表达式。左值可以出现在赋值号的左边或右边。
- 右值(rvalue):术语右值(rvalue)指的是存储在内存中某些地址的数值。右值是不能对其进行赋值的表达式,也就是说,右值可以出现在赋值号的右边,但不能出现在赋值号的左边。
以下是一些左值的例子:
- 变量名:
int x;
这里的x
是一个左值。 - 数组元素:
int arr[5];
arr[0]
是一个左值。 - 结构体的成员:
struct S { int a; };
S s;
s.a
是一个左值。 - 引用:
int& ref = x;
这里的ref
是x
的左值引用。
以下是一些右值的例子:
- 文字常量:
5
是一个整型右值。 - 临时变量:
(int)(x + 1)
这里的(x + 1)
是一个右值。 - 返回局部变量的函数:
int func() { return x; }
这里的x
是一个右值。 - 字符串字面量:
"Hello"
是一个字符串右值。
因此,我觉得可以这么理解:在变量定义中,变量名指向该变量存储的地址,而初始化值则将相应内容存储在该变量地址中。
3、变量的声明
(待续...)