在 C++ 编程语言中,变量是用于存储数据的基本单元,为程序可操作的存储区提供了名称,使开发者能够方便地访问和管理内存中的数据。C++ 提供了多种变量类型,以便存储不同种类的数据。每个变量都有指定的类型,而类型则决定了变量在内存中存储的大小和布局,以及可以对其应用的运算符。
变量命名规则:
- 变量的名称可以由字母、数字和下划线组成,且必须以字母或下划线开头;
- C++ 是一种大小写敏感的语言,因此 “Var” 和 “var” 被视为两个不同的标识符。
一、C++基本变量类型
C++ 中的基本变量类型包括:
二、C++其他变量类型
C++ 还支持多种其他类型的变量,以下是一些常见类型:
1、整数类型
| 类型 | 描述 | |--------------|--------------------------------------------| | "int" | 用于表示普通整数,通常占用 4 个字节。 | | "short" | 用于表示短整型,通常占用 2 个字节。 | | "long" | 用于表示长整型,通常占用 4 个字节或 8 个字节。 | | "long long" | 用于表示更长的整数,通常占用 8 个字节。 |
2、浮点类型
| 类型 | 描述 | |---------------|----------------------------------------------------| | "float" | 用于表示单精度浮点数,通常占用 4 个字节。 | | "double" | 用于表示双精度浮点数,通常占用 8 个字节。 | | "long double" | 用于表示更高精度的浮点数,占用字节数根据实现而变化。 |
3、C++字符类型
| 类型 | 描述 | |--------------|---------------------------------------------| | "char" | 用于表示字符,通常占用 1 个字节。 | | "wchar_t" | 用于表示宽字符,通常占用 2 或 4 个字节。 | | "char16_t" | 用于表示 16 位 Unicode 字符,通常占用 2 个字节。 | | "char32_t" | 用于表示 32 位 Unicode 字符,通常占用 4 个字节。 |
4、布尔类型
| 类型 | 描述 | |--------------|--------------------------------------------| | "bool" | 用于表示布尔值,值只能为 "true" 或 "false"。 |
5、其他类型
(1)枚举类型(Enumeration Types):使用 “enum” 定义一组命名的整数常量;
(2)指针类型(Pointer Types):使用 “type*” 表示指向某类型对象的指针;
(3)数组类型(Array Types):使用 “type[]” 或 “type[size]” 定义同一类型元素的数组;
(4)结构体类型(Structure Types):使用 “struct” 定义包含多个不同类型成员的结构。
(5)类类型(Class Types):使用“class”用于定义具有属性和方法的自定义类型。
(6)共用体类型(Union Types):“union”用于定义一种特殊的数据类型,它可以在相同的内存位置存储不同的数据类型。
三、C++变量定义
变量定义就是告诉编译器在何处创建变量的存储,以及如何创建变量的存储。
变量定义指定一个数据类型,并包含了该类型的一个或多个变量的列表,如下所示:
type variable_list;
在这里,type 必须是一个有效的 C++ 数据类型,可以是 char、wchar_t、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,这指示编译器创建类型为 int 的名为 i、j、k 的变量。
变量可以在声明的时候被初始化(指定一个初始值)。初始化器由一个等号,后跟一个常量表达式组成,如下所示:
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; }