变量与数据类型 - 整型、浮点型、字符型等
引言
在编程中,变量和数据类型是基础中的基础。理解它们如何工作以及如何正确使用它们对于编写高效且无误的代码至关重要。本文将详细介绍 C++ 中的几种基本数据类型:整型、浮点型、字符型等,并通过实例帮助读者更好地理解和掌握这些概念。
一、什么是变量?
变量是程序中用于存储数据的容器。每个变量都有一个名称(标识符)和一个特定的数据类型,用来确定它可以存储什么种类的数据。例如:
int age = 25; // 定义了一个名为 age 的整型变量,并赋值为 25
在这个例子中,age 是变量名,int 是它的数据类型,表示这是一个整数类型的变量。
二、整型(Integer Types)
整型用于表示没有小数部分的数值,如 1, 100, -5 等。C++ 提供了多种不同大小的整型以适应不同的需求:
| 类型 | 关键字 | 字节大小 | 范围 |
|---|---|---|---|
| 字符型 | char | 1 | -128 到 127 或 0 到 255 (取决于编译器) |
| 短整型 | short | 2 | -32,768 到 32,767 |
| 普通整型 | int | 4 | -2,147,483,648 到 2,147,483,647 |
| 长整型 | long | 4 或 8 | 视平台而定 |
| 长长整型 | long long | 8 | -9,223,372,036,854,775,808 到 9,223,372,036,854,775,807 |
示例:
#include <iostream>int main() {char c = 'A'; // 字符型short s = 100; // 短整型int i = 1000; // 普通整型long l = 100000L; // 长整型long long ll = 10000000000LL; // 长长整型std::cout << "Char: " << c << "\n";std::cout << "Short: " << s << "\n";std::cout << "Int: " << i << "\n";std::cout << "Long: " << l << "\n";std::cout << "Long Long: " << ll << "\n";return 0;
}
三、浮点型(Floating-Point Types)
浮点型用于表示带有小数部分的数值,如 3.14, 0.001 等。C++ 提供了两种主要的浮点类型:
| 类型 | 关键字 | 字节大小 | 范围 | 精度 |
|---|---|---|---|---|
| 单精度浮点型 | float | 4 | ±1.18×10^-38 到 ±3.4×10^38 | 约 6-7 位有效数字 |
| 双精度浮点型 | double | 8 | ±2.23×10^-308 到 ±1.80×10^308 | 约 15-16 位有效数字 |
示例:
#include <iostream>int main() {float f = 3.14f; // 单精度浮点型double d = 3.141592653589793; // 双精度浮点型std::cout << "Float: " << f << "\n";std::cout << "Double: " << d << "\n";return 0;
}
四、字符型(Character Types)
字符型用于表示单个字符,如字母、数字或符号。在 C++ 中,字符型用 char 表示,占用 1 个字节的空间。字符常量需要用单引号括起来,例如 'A', '1', '@'。
此外,C++ 还支持宽字符类型 wchar_t,它通常用于处理多字节字符集(如 Unicode)。
示例:
#include <iostream>int main() {char ch = 'A'; // 普通字符型wchar_t wch = L'Ω'; // 宽字符型std::cout << "Char: " << ch << "\n";std::wcout << L"Wide Char: " << wch << "\n";return 0;
}
五、布尔型(Boolean Type)
布尔型用于表示逻辑值,只有两个可能的取值:true 和 false。在 C++ 中,布尔型用 bool 表示。
示例:
#include <iostream>int main() {bool isTrue = true;bool isFalse = false;if (isTrue) {std::cout << "This is true.\n";}if (!isFalse) {std::cout << "This is also true.\n";}return 0;
}
六、枚举类型(Enumeration Types)
枚举类型是一种用户自定义的数据类型,它由一组命名的常量组成。这使得代码更具可读性和维护性。
示例:
#include <iostream>enum Color { RED, GREEN, BLUE };int main() {Color myColor = RED;switch (myColor) {case RED:std::cout << "The color is red.\n";break;case GREEN:std::cout << "The color is green.\n";break;case BLUE:std::cout << "The color is blue.\n";break;}return 0;
}
总结
本文详细介绍了 C++ 中常见的几种基本数据类型:整型、浮点型、字符型、布尔型和枚举类型。每种类型都有其独特的用途和特点,合理选择和使用它们可以让你的程序更加简洁、高效。希望这篇文章能够帮助你更好地理解 C++ 中的变量和数据类型。如果有任何问题或建议,请随时留言交流!
相关文章:
变量与数据类型 - 整型、浮点型、字符型等
引言 在编程中,变量和数据类型是基础中的基础。理解它们如何工作以及如何正确使用它们对于编写高效且无误的代码至关重要。本文将详细介绍 C 中的几种基本数据类型:整型、浮点型、字符型等,并通过实例帮助读者更好地理解和掌握这些概念。 一…...
MacOS安装Xcode(非App Store)
文章目录 访问官网资源页面 访问官网资源页面 直接访问官网的历史版本下载资源页面地址:https://developer.apple.com/download/more/完成APP ID的登陆,直接找到需要的软件下载即可 解压后,安装将xcode.app移动到应用程序文件夹。...
运行Zr.Admin项目(后端)
1.下载Zr.Admin代码压缩包 https://codeload.github.com/izhaorui/Zr.Admin.NET/zip/refs/heads/main 2.打开项目 我这里装的是VS2022社区版 进入根目录,双击ZRAdmin.sln打开项目 3.安装.net7运行时 我当时下载的代码版本是.net7的 点击安装 点击安装࿰…...
Ubuntu24.04最新版本安装详细教程
Ubuntu 24.04 LTS发布说明 推荐的系统配置要求: 双核2 GHz处理器或更高 4 GB系统内存 25 GB磁盘存储空间 可访问的互联网 光驱或USB安装介质 Ubuntu 24.04官方下载网址:https://cn.ubuntu.com/download/desktop 04. Ubuntu 22.04(创建虚拟机方式一) 4…...
js版本之ES6特性简述【Proxy、Reflect、Iterator、Generator】(五)
目录 Proxy Reflect 静态方法 部分实例 Iterator 实际开发迭代器的使用实例 迭代器(Iterator)应用 Generator Proxy Proxy 是 ES6 中新增的对象 Proxy 是JavaScript中的内置对象,它提供了一种机制,可以拦截并自定义各种…...
CSS实现一个自定义的滚动条
要使用CSS创建一个自定义的滚动条,你可以使用伪元素和CSS的伪类来控制滚动条的外观和行为。以下是一个简单的例子,展示如何为任何HTML元素添加一个自定义的滚动条样式: <!DOCTYPE html> <html lang"en"> <head> …...
CKA认证 | Day8 K8s安全
第八章 Kubernetes安全 1、Kubernetes RBAC授权 Kubernetes 基于角色的访问控制(Role-Based Access Control, RBAC) 是一种强大的权限管理机制,用于控制用户、用户组、服务账户对 Kubernetes 集群资源的访问。通过 RBAC,可以细…...
深度分析java 使用 proguard 如何解析混淆后的堆栈
经过proguard混淆过后,发生异常时堆栈也进行了混淆,那么如果获取的原始的堆栈呢?我们下面来看下 使用proguard 根据mapping文件直接解析 import proguard.obfuscate.MappingReader; import proguard.retrace.FrameInfo; import proguard.re…...
bash 中 ${-#*i} 是什么意思?
-------------------------------------------------- author: hjjdebug date: 2024年 12月 25日 星期三 17:43:45 CST description: bash 中 ${-#*i} 是什么意思? -------------------------------------------------- 在centos 的 /etc/profile 中有这样的语句 for i in /…...
什么是Top-p采样与Top-k采样?大模型推理时如何同时设置?解析Transformers库源代码
什么是Top-p采样与Top-k采样?大模型推理时如何同时设置? 在自然语言生成(NLG)和大规模语言模型推理中,Top-k采样 和 Top-p采样 是两种常用的解码策略,用于控制生成文本的多样性和质量。它们在生成过程中对…...
java队列--数据结构
文章目录 前言本文源代码网址:https://gitee.com/zfranklin/java/tree/master/dataStructure/src/com/njupt/queue队列的性质数组队列成员变量方法 链表栈成员变量方法 总结 前言 顺序表和链表两种存储方式实现数据结构–队列。 本文源代码网址:https:/…...
【WebSocket】tomcat内部处理websocket的过程
websocket请求格式 浏览器请求 GET /webfin/websocket/ HTTP/1.1。 Host: localhost。 Upgrade: websocket。 Connection: Upgrade。 Sec-WebSocket-Key: xqBt3ImNzJbYqRINxEFlkg。 Origin: http://服务器地址。 Sec-WebSocket-Version: 13。 服务器响应 HTTP/1.1 101 Swi…...
【踩坑/Linux】Vmware中的Ubuntu虚拟机无法访问互联网
Vmware中的Ubuntu虚拟机无法访问互联网 首先前提是我的系统是Ubuntu 16.04系统,vmware workstation选择的是NAT模式,虚拟机内连不上网络 ping www.baidu.com ping: unknown host www.baidu.com首先检查 DNS 解析服务:在虚拟机中打开命令提示…...
overleaf中的includegraphics设置图片缩放,居中显示
overleaf中的includegraphics设置图片缩放,居中显示 \includegraphics[width=0.5\textwidth]{example.jpg} \centering 在使用 \includegraphics 命令插入图片时,可以通过设置其参数来缩小图片的显示尺寸,以下是几种常见的方法: 设置宽度或高度 按比例缩小宽度:可以使用…...
IPv6的地址类型
IPv6地址总长度为128bit,被分为8组,每组为4个十六进制数,用冒号分隔: 例如:FC00:0123:4567:8901:ABFD:0987:0000:0023 可缩写为:FC00:0123:4567:8901:ABFD:0987::23 IPv6中取消了v4中的广播,新…...
Elasticsearch:analyzer(分析器)
一、概述 可用于将字符串字段转换为单独的术语: 添加到倒排索引中,以便文档可搜索。级查询(如 生成搜索词的 match查询)使用。 分析器分为内置分析器和自定义的分析器,它们都是由若干个字符过滤器(chara…...
【工作感悟】
1、不返工 - 复述任务 避免返工的前提是先把事情弄清楚,怎么弄清楚,要问到每个细节,怎么确保每个细节都问到了,把要做的事情复述一遍,有必要的话再讲述一下自己打算怎么做;及时对齐工作进度可以避免出错 …...
事件(event) SystemVerilog
1.定义 在数字逻辑仿真中,事件(event) 是一种机制,用于触发模型中的更新或计算。这种机制是仿真器用来追踪信号的变化以及调度进程执行的核心。 2.分类 事件可以分为以下两种类型: 更新事件(Update Even…...
【MySQL学习笔记】关于索引
文章目录 【MySQL学习笔记】关于索引1.索引数据结构2.索引存储3.联合索引3.1 联合索引的b树结构3.2 索引覆盖?回表?3.3 联合索引最左匹配原则3.5 索引下推 4.索引失效 【MySQL学习笔记】关于索引 1.索引数据结构 索引是一种能提高查询速度的数据结构。…...
APIs-day3
1.全选反选案例 <head><meta charset"utf-8"><meta name"viewport" content"widthdevice-width,initial-scale1.0"><title>练习</title><style>*{margin: 0;padding: 0;}table{margin: 100px auto;width: …...
Python|GIF 解析与构建(5):手搓截屏和帧率控制
目录 Python|GIF 解析与构建(5):手搓截屏和帧率控制 一、引言 二、技术实现:手搓截屏模块 2.1 核心原理 2.2 代码解析:ScreenshotData类 2.2.1 截图函数:capture_screen 三、技术实现&…...
day52 ResNet18 CBAM
在深度学习的旅程中,我们不断探索如何提升模型的性能。今天,我将分享我在 ResNet18 模型中插入 CBAM(Convolutional Block Attention Module)模块,并采用分阶段微调策略的实践过程。通过这个过程,我不仅提升…...
基于Flask实现的医疗保险欺诈识别监测模型
基于Flask实现的医疗保险欺诈识别监测模型 项目截图 项目简介 社会医疗保险是国家通过立法形式强制实施,由雇主和个人按一定比例缴纳保险费,建立社会医疗保险基金,支付雇员医疗费用的一种医疗保险制度, 它是促进社会文明和进步的…...
蓝牙 BLE 扫描面试题大全(2):进阶面试题与实战演练
前文覆盖了 BLE 扫描的基础概念与经典问题蓝牙 BLE 扫描面试题大全(1):从基础到实战的深度解析-CSDN博客,但实际面试中,企业更关注候选人对复杂场景的应对能力(如多设备并发扫描、低功耗与高发现率的平衡)和前沿技术的…...
全球首个30米分辨率湿地数据集(2000—2022)
数据简介 今天我们分享的数据是全球30米分辨率湿地数据集,包含8种湿地亚类,该数据以0.5X0.5的瓦片存储,我们整理了所有属于中国的瓦片名称与其对应省份,方便大家研究使用。 该数据集作为全球首个30米分辨率、覆盖2000–2022年时间…...
Vue2 第一节_Vue2上手_插值表达式{{}}_访问数据和修改数据_Vue开发者工具
文章目录 1.Vue2上手-如何创建一个Vue实例,进行初始化渲染2. 插值表达式{{}}3. 访问数据和修改数据4. vue响应式5. Vue开发者工具--方便调试 1.Vue2上手-如何创建一个Vue实例,进行初始化渲染 准备容器引包创建Vue实例 new Vue()指定配置项 ->渲染数据 准备一个容器,例如: …...
如何将联系人从 iPhone 转移到 Android
从 iPhone 换到 Android 手机时,你可能需要保留重要的数据,例如通讯录。好在,将通讯录从 iPhone 转移到 Android 手机非常简单,你可以从本文中学习 6 种可靠的方法,确保随时保持连接,不错过任何信息。 第 1…...
什么是Ansible Jinja2
理解 Ansible Jinja2 模板 Ansible 是一款功能强大的开源自动化工具,可让您无缝地管理和配置系统。Ansible 的一大亮点是它使用 Jinja2 模板,允许您根据变量数据动态生成文件、配置设置和脚本。本文将向您介绍 Ansible 中的 Jinja2 模板,并通…...
Device Mapper 机制
Device Mapper 机制详解 Device Mapper(简称 DM)是 Linux 内核中的一套通用块设备映射框架,为 LVM、加密磁盘、RAID 等提供底层支持。本文将详细介绍 Device Mapper 的原理、实现、内核配置、常用工具、操作测试流程,并配以详细的…...
网站指纹识别
网站指纹识别 网站的最基本组成:服务器(操作系统)、中间件(web容器)、脚本语言、数据厍 为什么要了解这些?举个例子:发现了一个文件读取漏洞,我们需要读/etc/passwd,如…...
