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;