C++ 变量和类型
C++ 变量
变量为我们提供了程序可以操作的命名存储空间。C++ 中的每个变量都有特定的类型,这决定了变量内存的大小和布局;可存储在该内存中的值的范围;以及可应用于该变量的操作集。
C++ 变量命名
变量名称可以由字母、数字和下划线组成。它必须以字母或下划线开头。由于 C++ 区分大小写,因此大小写字母有区别。
C++ 中变量命名约定的其他一些规则 -
- 关键字不能用作变量名。
- 变量名中不能包含空格。
- 变量名中不能使用连字符 (-)。
- 变量名不能以特殊字符和数字开头。它应该是大写字母、小写字母或下划线 (_)。
有效变量名示例
一些有效的变量名如下 -
int age; int _age; int student_age; int studentAge;
无效变量名示例
一些无效变量名如下:-
int 2ndvariable; int student-age; int float; int student age; int #age;
C++ 变量的类型
如上一章所述,C++ 中有以下基本变量类型 -
| Sr.No | 类型 &描述 |
|---|---|
| 1 |
存储值 true 或 false。 |
| 2 |
通常为单个八位字节(一个字节)。这是一个整数类型。 |
| 3 | int 机器最自然的整数大小。 |
| 4 | float 单精度浮点值。 |
| 5 | double 双精度浮点值。 |
| 6 | void 表示不存在类型。 |
| 7 | wchar_t 宽字符类型。 |
C++ 还允许定义各种其他类型的变量,我们将在后续章节中介绍,例如枚举、指针、数组、引用、数据结构和类。
下一节将介绍如何定义、声明和使用各种类型的变量。
C++ 中的变量定义
变量定义告诉编译器在何处以及为变量创建多少存储空间。变量定义指定一种数据类型,并包含一个或多个该类型的变量列表,如下所示:-
语法
type 变量列表;
其中,type 必须是有效的 C++ 数据类型,包括 char、w_char、int、float、double、bool 或任何用户定义的对象等;variable_list 可以包含一个或多个以逗号分隔的标识符名称。一些有效的声明如下所示:-
int i, j, k; char c, ch; float f, salary; double d;
int i, j, k; 这行代码声明并定义了变量 i、j 和 k;它指示编译器创建名为 i、j 和 k 的 int 类型变量。
C++ 中的变量初始化
变量可以在声明中初始化(赋予初始值)。初始化函数由一个等号后跟一个常量表达式组成,如下所示:-
语法
type variable_name = value;
示例
以下是一些示例:-
extern int d = 3, f = 5; // 声明 d 和 f。 int d = 3, f = 5; // 定义并初始化 d 和 f。 byte z = 22; // 定义并初始化 z。 char x = 'x'; // 变量 x 的值为 'x'。
对于没有初始化器的定义:具有静态存储期的变量隐式初始化为 NULL(所有字节的值均为 0);所有其他变量的初始值均未定义。
C++ 中的变量声明
变量声明向编译器保证存在一个具有给定类型和名称的变量,以便编译器无需了解变量的完整信息即可继续进行进一步编译。变量声明仅在编译时有意义,编译器在程序链接时需要实际的变量定义。
当您使用多个文件,并且在链接程序时可用的其中一个文件中定义变量时,变量声明非常有用。您将使用 extern 关键字在任何地方声明变量。虽然您可以在 C++ 程序中多次声明一个变量,但它只能在文件、函数或代码块中定义一次。
示例
尝试以下示例,其中一个变量在顶部声明,但在主函数内部定义 -
#include <iostream>
using namespace std;
// 变量声明:
extern int a, b;
extern int c;
extern float f;
int main () {
// 变量定义:
int a, b;
int c;
float f;
// 实际初始化
a = 10;
b = 20;
c = a + b;
cout << c << endl ;
f = 70.0/3.0;
cout << f << endl ;
return 0;
}
当编译并执行上述代码时,它会产生以下结果 -
30 23.3333
同样的概念也适用于函数声明,即在声明时提供函数名称,而其实际定义可以在其他任何地方给出。例如:-
// 函数声明
int func();
int main() {
// 函数调用
int i = func();
}
// 函数定义
int func() {
return 0;
}
左值和右值
C++ 中有两种表达式 -
左值 - 引用内存位置的表达式称为"左值"表达式。左值可以出现在赋值语句的左侧或右侧。
右值 - 术语"右值"是指存储在内存中某个地址的数据值。右值是一种不能被赋值的表达式,这意味着右值可以出现在赋值语句的右侧,但不能出现在赋值语句的左侧。
变量是左值,因此可以出现在赋值语句的左侧。数值字面量是右值,因此不能被赋值,也不能出现在赋值语句的左侧。以下是有效的语句 -
int g = 20;
但以下语句无效,会产生编译时错误 -
10 = 20;

