主页
  • 主页
  • 分类
  • 热文
  • 教程
  • 面试
  • 标签
C++

C++ 基础

C++ 主页
C++ 概述
C++ 环境
C++ 基本语法
C++ 注释
C++ 数据类型
C++ Hello, World
C++ 省略命名空间
C++ 数值类型
C++ 字符类型
C++ 布尔类型
C++ 变量
C++ 作用域
C++ 多个变量
C++ 输入输出基础
C++ 常量/文字
C++ 修饰符类型
C++ 存储类别
C++ 操作符
C++ 决策结构
C++ 循环结构
C++ foreach 循环
C++ 数字
C++ 数组
C++ 指针
C++ 枚举类型
C++ 引用变量
C++ 日期与时间
C++ 结构体
C++ 联合类型

C++ 字符串

C++ 字符串
C++ 字符串长度
C++ 字符串连接

C++ 函数

C++ 函数
C++ 多参数函数
C++ 递归
C++ return 语句
C++ 函数重载
C++ 函数重写

C++ 面向对象

C++ 面向对象
C++ 类和对象
C++ 多重继承
C++ 多层次继承
C++ 继承
C++ 重载
C++ 多态性
C++ 抽象
C++ 封装
C++ 接口

C++ 高级

C++ 文件和流
C++ 异常处理
C++ 动态内存
C++ 命名空间
C++ 模板
C++ 预处理器
C++ 信号量
C++ 多线程
C++ Web 编程
C++ 高级概念

基础

C++ 主页
C++ 概述
C++ 环境
C++ 基本语法
C++ 注释
C++ 数据类型
C++ Hello, World
C++ 省略命名空间
C++ 数值类型
C++ 字符类型
C++ 布尔类型
C++ 变量
C++ 作用域
C++ 多个变量
C++ 输入输出基础
C++ 常量/文字
C++ 修饰符类型
C++ 存储类别
C++ 操作符
C++ 决策结构
C++ 循环结构
C++ foreach 循环
C++ 数字
C++ 数组
C++ 指针
C++ 枚举类型
C++ 引用变量
C++ 日期与时间
C++ 结构体
C++ 联合类型

字符串

C++ 字符串
C++ 字符串长度
C++ 字符串连接

函数

C++ 函数
C++ 多参数函数
C++ 递归
C++ return 语句
C++ 函数重载
C++ 函数重写

面向对象

C++ 面向对象
C++ 类和对象
C++ 多重继承
C++ 多层次继承
C++ 继承
C++ 重载
C++ 多态性
C++ 抽象
C++ 封装
C++ 接口

高级

C++ 文件和流
C++ 异常处理
C++ 动态内存
C++ 命名空间
C++ 模板
C++ 预处理器
C++ 信号量
C++ 多线程
C++ Web 编程
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++ 中的基本变量类型如下所述:

序号 类型 描述
1 bool 存储 true 或 false 值。
2 char 通常是一个八位(一个字节)。这是一个整数类型。
3 int 对于机器来说最自然的整数大小。
4 float 单精度浮点值。
5 double 双精度浮点值。
6 void 表示无类型。
7 wchar_t 一个宽字符类型。

C++ 还允许定义其他类型的变量,比如枚举(enumeration)、指针(pointer)、数组(array)、引用(reference)、数据结构和类(class),这些将在后续章节中介绍。

接下来的部分将涵盖如何定义、声明和使用各种类型的变量。

C++ 中的变量定义

变量定义告诉编译器在哪里以及为变量创建多少存储空间。变量定义指定了一个数据类型,并包含一个或多个该类型变量的列表,格式如下:

语法

type variable_list;

在这里,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++ 中的变量声明

变量声明向编译器保证存在具有给定类型和名称的一个变量,以便编译器可以继续编译而不需完全了解变量的细节。变量声明仅在编译时有意义,编译器需要实际的变量定义来进行程序链接。

当您使用多个文件并在其中一个文件中定义变量时,变量声明很有用,因为该变量会在程序链接时可用。尽管您可以在 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;
}

L值和 R值

C++ 中有两种类型的表达式:

  • L值 - 指向一个内存位置的表达式被称为“L值”表达式。L值可以出现在赋值语句的左侧或右侧。
  • R值 - R值指的是存储在内存中某个地址的数据值。R值是一个不能被赋予值的表达式,这意味着 R值只能出现在赋值语句的右侧。

变量是 L值,所以可以出现在赋值语句的左侧。数值字面量是 R值,所以不能被赋值并且不能出现在赋值语句的左侧。下面是一个有效语句:

int g = 20;

但是下面不是一个有效语句,并会产生编译错误:

10 = 20;
上一章 下一章
阅读号二维码

关注阅读号

联系二维码

联系我们

© 2024 Yoagoa. All rights reserved.

粤ICP备18007391号

站点地图