C++ 第一阶段 基本语法 - 第一节:变量与数据类型详解

目录

一、变量与数据类型概述

1.1 什么是变量?

1.2 数据类型分类

二、基本数据类型详解

2.1 整型(int, short, long)

2.1.1 常见整型类型

2.1.2 代码示例

2.1.3 注意事项

2.2 浮点型(float, double)

2.2.1 浮点型特点

2.2.2 代码示例

2.2.3 精度问题

2.3 字符型(char)

2.3.1 字符型特性

2.3.2 代码示例

2.3.3 常见转义字符

2.4 布尔型(bool)

2.4.1 布尔型特点

2.4.2 代码示例

三、枚举类型(enum)

3.1 基本枚举定义

3.2 C++11 强类型枚举

四、变量命名规则与最佳实践

4.1 命名规则

4.2 命名风格

4.3 初始化建议

五、总结


一、变量与数据类型概述

1.1 什么是变量?

变量是程序中用于存储数据的容器,每个变量需要指定一个数据类型,以决定:

  • 存储空间大小(内存占用)
  • 数据的取值范围
  • 可执行的操作类型

1.2 数据类型分类

C++ 是静态类型语言,变量类型在声明时确定。基础数据类型包括:

  • 整型(int, short, long)
  • 浮点型(float, double)
  • 字符型(char)
  • 布尔型(bool)
  • 枚举型(enum)

二、基本数据类型详解

2.1 整型(int, short, long)

2.1.1 常见整型类型
类型占用字节范围(32位系统)
short2-32768 ~ 32767
int4-2147483648 ~ 2147483647
long4同 int
long long8±9.2e18
2.1.2 代码示例
#include <iostream>
using namespace std;int main() {int age = 25;             // 声明int变量short temperature = -5;   // 声明short变量long population = 7800000000L; // long变量需加后缀Lcout << "Age: " << age << endl;cout << "Temperature: " << temperature << endl;cout << "Population: " << population << endl;return 0;
}

输出

Age: 25
Temperature: -5
Population: 7800000000
2.1.3 注意事项
  • 32位系统下 int 通常为 4 字节,64位系统可能不同
  • 使用 LLONG_MAX 等常量查看最大值(需包含 <climits> 头文件)

2.2 浮点型(float, double)

2.2.1 浮点型特点
类型占用字节精度表示范围
float46-7 位有效数字3.4e-38 ~ 3.4e+38
double815-16 位有效数字1.7e-308 ~ 1.7e+308
2.2.2 代码示例
#include <iostream>
using namespace std;int main() {float pi = 3.14159f;      // float变量需加后缀fdouble gravity = 9.81;    // double默认类型double scientific = 6.022e23; // 科学计数法cout << "Pi: " << pi << endl;cout << "Gravity: " << gravity << endl;cout << "Scientific: " << scientific << endl;return 0;
}

输出

Pi: 3.14159
Gravity: 9.81
Scientific: 6.022e+23
2.2.3 精度问题
float a = 0.1f;
float b = 0.2f;
if (a + b == 0.3f) { // 实际不会成立!cout << "Equal";
} else {cout << "Not equal"; // 输出此行
}

原因:浮点数在计算机中是以二进制存储的,某些十进制小数无法精确表示。


2.3 字符型(char)

2.3.1 字符型特性
  • 占用 1 字节(8 bit)
  • 实际存储的是 ASCII 码值(0~127)
  • 可直接操作字符或其对应的整数值
2.3.2 代码示例
#include <iostream>
using namespace std;int main() {char grade = 'A';         // 字符常量char newline = '\n';      // 转义字符char ascii_value = 65;    // 直接使用ASCII码cout << "Grade: " << grade << endl;cout << "ASCII 65: " << ascii_value << endl;cout << "Newline: " << newline << "END" << endl;return 0;
}

输出

Grade: A
ASCII 65: A
Newline: 
END
2.3.3 常见转义字符
转义字符含义
\n换行
\t制表符
\\反斜杠
\"双引号
\'单引号

2.4 布尔型(bool)

2.4.1 布尔型特点
  • 占用 1 字节
  • 取值仅能是 true 或 false
  • 在条件判断中自动转换:
    • 非零值 → true
    • 零值 → false
2.4.2 代码示例
#include <iostream>
using namespace std;int main() {bool is_raining = true;bool has_error = 0; // 0 → falseif (is_raining) {cout << "Bring an umbrella!" << endl;}if (!has_error) {cout << "No error detected." << endl;}return 0;
}

输出

Bring an umbrella!
No error detected.

三、枚举类型(enum)

3.1 基本枚举定义

#include <iostream>
using namespace std;int main() {enum Color { RED, GREEN, BLUE }; // 自动从0开始编号Color my_color = GREEN;cout << "RED = " << RED << endl;    // 输出 0cout << "GREEN = " << GREEN << endl; // 输出 1cout << "BLUE = " << BLUE << endl;  // 输出 2return 0;
}

3.2 C++11 强类型枚举

enum class Direction { UP, DOWN, LEFT, RIGHT }; // 不会隐式转换为int
Direction dir = Direction::UP;// 错误:不能直接比较int和Direction
// if (dir == 0) { ... }// 正确方式:
if (dir == Direction::UP) {cout << "Going up!" << endl;
}

四、变量命名规则与最佳实践

4.1 命名规则

  • 只能使用字母、数字和下划线(_
  • 不能以数字开头
  • 区分大小写(age ≠ Age
  • 不可使用C++关键字(如 intclass

4.2 命名风格

风格示例适用场景
驼峰命名法myVariable变量名
蛇形命名法my_variable常量/宏定义
全大写MAX_VALUE全局常量

4.3 初始化建议

// 推荐方式(C++11统一初始化)
int x{5};      // 值初始化
int y{};       // 零初始化
int z{10.5};   // 编译错误(防止隐式窄化)// 不推荐方式
int a = 5;     // C风格初始化
int b = {5};   // C++11列表初始化

五、总结

数据类型用途示例
int存储整数int count = 100;
float/double存储小数double price = 9.99;
char存储单个字符char letter = 'Z';
bool存储逻辑值bool flag = true;
enum定义命名的整数常量集合enum Status { OK, ERROR };

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/web/84058.shtml
繁体地址,请注明出处:http://hk.pswp.cn/web/84058.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

CppCon 2017 学习:CNL: A Compositional Numeric Library

你说的这段关于浮点数的问题总结得很精准&#xff0c;我帮你整理一下&#xff0c;让理解更清晰&#xff1a; The Problem with Floating-Point&#xff08;浮点数的问题&#xff09; 复杂的表示结构 浮点数由符号位 &#xff0c;有效数&#xff08;significand/mantissa&…

linux基础重定向及组合重定向

一、基础重定向操作符 ‌类别‌ ‌操作符‌ ‌含义‌ ‌示例‌ ‌备注‌ ‌标准输出‌ > 覆盖写入 stdout 到文件 ls > file.txt 文件不存在则创建&#xff0c;存在则清空内容 >> 追加 stdout 到文件末尾 date >> log.txt 保留原有内容 ‌标准…

佰力博科技与您探讨铁电分析仪适用场景

铁电分析仪是一种用于测试和研究铁电材料性能的精密仪器&#xff0c;其适用场景非常广泛&#xff0c;涵盖了材料科学、物理学、电子工程等多个领域。 1、材料科学与工程 铁电分析仪广泛应用于铁电材料的研究&#xff0c;包括薄膜、厚膜、块体材料以及电子陶瓷等。它能够测试材料…

JVM 内存模型与垃圾回收机制全解析:架构、算法、调优实践

Java 作为一门面向对象的编程语言&#xff0c;其核心优势之一是 “一次编写&#xff0c;到处运行” 的跨平台特性。这一特性背后&#xff0c;Java 虚拟机&#xff08;JVM&#xff09;扮演着至关重要的角色。JVM 不仅负责解释执行字节码&#xff0c;还通过内存管理和垃圾回收机制…

自然语言处理相关基本概念

基本概念章节总结 一、语言学&#xff08;Linguistics&#xff09; 定义 研究语言的本质、结构和发展规律的科学&#xff0c;涵盖语音、文字、语法等属性。分支包括历时语言学、共时语言学、描述语言学等。 核心内容 分析语言的形态、句法、语义等层面&#xff0c;如词素&…

Vue购物车应用实现教程

文章目录 1. 项目介绍2. 开发环境准备3. 设计购物车界面4. 创建Vue实例和数据模型5. 实现购物车功能5.1 从本地存储加载数据5.2 监听数据变化保存到本地存储5.3 实现全选/反选功能5.4 计算选中商品的总价和总数量5.5 实现修改商品数量功能5.6 实现删除商品功能5.7 实现结算功能…

双因子认证如何让Windows系统登录更安全?SLA操作系统双因素认证解决方案深度解析

引言&#xff1a;数字化转型下的身份认证危机 在云计算与远程办公普及的2025年&#xff0c;企业信息系统正面临前所未有的安全挑战。微软Azure Virtual Desktop漏洞事件、Citrix数据泄露等安全事件频发&#xff0c;暴露出传统密码认证体系的致命缺陷。据《2025年云安全威胁报告…

FPGA基础 -- Verilog语言要素之值集合

一、Verilog 值集合&#xff08;Value Set&#xff09; Verilog 是一种面向硬件建模的描述语言&#xff0c;为了更真实地模拟硬件行为&#xff0c;它并不仅仅像 C 语言那样只有 0 和 1 两种值&#xff0c;而是采用了四值逻辑&#xff08;Four-valued logic system&#xff09;…

开源一个芯片自由的脱机下载器

一、什么是脱机下载器 简单来说&#xff0c;脱机下载器就是在不连接电脑、不用专业软件的情况下&#xff0c;也能帮你把程序烧录进芯片的工具。只要插上电源、按个按钮&#xff0c;固件就自动下载进 MCU&#xff0c;非常适合量产、售后、维修等场景。 二、芯片自由的背后&…

Rust 学习笔记:关于模式匹配的练习题

Rust 学习笔记&#xff1a;关于模式匹配的练习题 Rust 学习笔记&#xff1a;关于模式匹配的练习题问题一问题二问题三 Rust 学习笔记&#xff1a;关于模式匹配的练习题 参考视频&#xff1a; https://www.bilibili.com/video/BV1YxojYJESm 问题一 以下代码能否通过编译&…

利用tkinter函数构造MD5加密的可视化操作界面

GitHub文档地址&#xff1a; https://github.com/gao7025/auto_entry_md5.git 引言 利用tkinter构造一个图形界面的创建函数&#xff0c;主要实现了文件选择、MD5加密处理、结果预览和下载等功能。下面是主要涉及的功能模块&#xff1a;主框架、文件选择部分、MD5加密部分、结…

ICEM CFD网格生成 | 基本概念与界面工具

基本概念◆ 名称定义 网格&#xff1a;网格是空间离散的单元&#xff0c;用于如下数值仿真 结构 流体 电磁 其他 单元 0D – 节点单元 质量点 约束&#xff0c;加载位置 1D –线单元 Bars, beams, rods, springs 2D 网格边界 2D – 表面/壳单元 - 四边形 - 三角…

简化您的工作流程:在 Azure 中构建高效的逻辑应用程序

简介 在当今的数字化环境中,自动化工作流程和服务集成对于追求效率和敏捷性的企业至关重要。Azure Logic Apps 使开发人员和 IT 专业人员能够创建集成应用、数据、服务和系统的自动化工作流程。在本文中,我们将逐步讲解使用 Azure 门户创建 Logic Apps 的过程,并通过演示来说…

AI 技术落地实战:开发流程优化、行业场景重塑与前沿应用洞察

在人工智能技术如火如荼发展的当下&#xff0c;AI 工具、大模型以及它们在各行业的应用&#xff0c;正以前所未有的态势重塑着开发者的工作模式和各领域的发展格局。从智能编码助手让编程变得高效便捷&#xff0c;到自动化测试平台提升软件质量&#xff0c;从大模型在垂直行业的…

文本生成AI+图像识别:电商详情页信息提取实战

行业问题&#xff1a;传统采集难以应对“图文视频化”的电商信息 在电商平台不断“视频化”的趋势下&#xff0c;传统的网页采集手段正逐渐失效。以抖音为例&#xff0c;商品信息已不仅限于图文详情&#xff0c;而是通过短视频、图像混排、语音解说等形式呈现。商品的名称、优…

linux权限基础

权限的概念 linux中&#xff0c;权限是用于控制【用户】对 【文件】进行操作控制的工具。用户权限文件权限 用户权限 用户 用户组&#xff1a;具有相同特性的用户的集合体。 文件权限 linux中&#xff0c;一切皆文件&#xff0c;包括普通文件&#xff0c;目录&#xff0c;文件…

让C++处理JSON类型配置文件更轻松-Hjson-cpp详解

让C处理JSON类型配置文件更轻松-Hjson-cpp详解 一、Hjson-Cpp简介Hjson-Cpp简介核心特性安装与集成基本用法示例常用API说明与JSON互转错误处理性能建议高级特性1. 类型安全访问2. 文件操作3. 自定义解析规则 二、使用教程下载使用 一、Hjson-Cpp简介 Hjson-Cpp简介 Hjson-Cp…

单例模式的好处

为什么要使用单例模式 1.资源管理&#xff1a; 唯一性&#xff1a;某些资源在整个应用程序中只需要一个实例&#xff0c;例如日志记录器、配置管理器、数据库连接池等。单例模式可以确保这些资源的唯一性&#xff0c;避免重复创建和管理。 全局访问&#xff1a;单例模式提供了…

LangChain 结构化输出指南

LangChain 结构化输出指南 概述 对于许多应用程序&#xff08;如聊天机器人&#xff09;&#xff0c;模型需要直接用自然语言回应用户。然而&#xff0c;在某些场景下&#xff0c;我们需要模型以结构化格式输出。例如&#xff0c;我们可能希望将模型输出存储在数据库中&#…

探究webView与html的通讯

最近出来个新需求&#xff1a; 需求描述&#xff1a; 将uniapp的代码打包成一个app&#xff0c;并实现原本的功能。 原uniapp是一个H5项目&#xff0c;主要的步骤流程是上传用户的身份证进行二要素认证&#xff0c;成功后再进行三方活体认证&#xff0c;然后三方回跳到项目中的…