逆向基础--C++数据类型 (02)

news/2025/11/9 11:46:32/文章来源:https://www.cnblogs.com/MrHSR/p/19202784

逆向基础--C++数据类型 (02)

一.介绍

  使用编程语言进行编程时,需要用到各种变量来存储各种信息。变量保留的是它所存储的值的内存位置。这意味着,当您创建一个变量时,就会在内存中保留一些空间。

  变量的名称可以由字母、数字和下划线字符组成。它必须以字母或下划线开头。

  大写字母和小写字母是不同的,因为 C++ 是大小写敏感的。

  1.1 基本数据类型

    其中char、int、short、long默认声明的都是signed (有符号)类型。如果取值要求是无符号,需要显示加上unsigned修饰符,如unsigned  int a=23412414; 

    const表示常量,值不可修改。 如const int a=10000; 

类型 关键字 字节大小 描述
布尔型 bool 1个字节

取值:true 或 false

字符型 char 1个字节

字符类型,通常用于存储 ASCII 字符

取值:-128 到 127 或 0 到 255  

unsigned无符号取值: 0 到 255

宽字符类型 wchar_t 2 个或 4 个字节

适用于处理宽字符编码的文本,

可以表示更多的字符,包括中文、日文、韩文等非英文字符

示例:wchar_t wc = L'啊'   // 一个中文字符

整型 int 4

通常用于存储普通整数

int的取值:-2,147,483,648 到 2,147,483,647

unsigned 无符号取值:0 到 4,294,967,295

短整型 short 2

取值:-32,768 到 32,767

unsigned 无符号取值:0 到 65,535

长整型 long 4 或 8

取值:取决于平台

unsigned 无符号取值:取决于平台

长长整型 long long 8

取值:-9,223,372,036,854,775,808 到 9,223,372,036,854,775,807

unsigned 无符号取值:0 到 18,446,744,073,709,551,615

单精度浮点数 float 4

约 ±3.4e±38(6-7 位有效数字)

理解为正负3.4 乘以10的38次方是指范围。

6-7 位有效数字是指精度

例如我们想存储123,456,792,但实现存储的是123,456,789,两者都从 123,456 开始一致,到了第7位开始出现差异,从非零数字开始,大约有7位有效数字是可靠的。
这么理解--超过非零数字开始的7位数(带小数的数)的不宜用float来存储。
双精度浮点数 double 8 约 ±1.7e±308(15 位有效数字)
扩展精度浮点数 long double 8、12 或 16 取决于平台

  1.2 派生数据类型

数据类型 描述 示例
数组 相同类型元素的集合 int arr[5] = {1, 2, 3, 4, 5};
指针 存储变量的内存地址

int x = 10;

int* ptr = &x; //定义一个指针,存储x的内存地址

有点类似于C#值传递的ref或out关键字

引用 变量的别名

int& ref = x;  //ref是x的引用,即别名

refx代表同一个内存地址。对ref的任何操作都会直接影响到x,反之亦然

 函数 函数类型,表示函数的签名 int func(int a, int b);
 结构体 用户定义的数据类型,可以包含多个不同类型的成员 struct Point { int x; int y; };
 类  用户定义的数据类型,支持封装、继承和多态 class MyClass { ... };
 联合体 多个成员共享同一块内存

union Data { int i; float f; };

这个例子中,Data联合体有二个成员:一个整数i、一个浮点数f

在任何时候,只能使用其中一个成员,因为它们都共享同一块内存

 枚举 用户定义的整数常量集合  enum Color { RED, GREEN, BLUE };

  1.3 标准库类型

    std是命名空间,使用std::前缀(或者使用using声明)

数据类型 描述 示例
std::string 字符串类型 std::string s = "Hello";
std::vector 动态数组 std::vector<int> v = {1, 2, 3};
std::array 固定大小数组(C++11 引入) std::array<int, 3> a = {1, 2, 3};
std::pair 存储两个值的容器 std::pair<int, float> p(1, 2.0);
std::map 键值对容器 std::map<int, std::string> m;
std::set 唯一值集合 std::set<int> s = {1, 2, 3};

  1.4 C++11 新增类型

数据类型 描述 示例
auto 自动类型推断 auto x = 10;
decltype 获取表达式的类型

int x = 10; // x 是 int 类型,值为10

decltype(x) y = 20; // y 也是 int 类型,值为20

nullptr 空指针常量

int* ptr = nullptr;

//声明ptr变量的整数指针,初始化为 nullptr(空指针)

std::initializer_list 初始化列表类型

std::initializer_list<int> list = {1, 2, 3}

//只读访问:std::initializer_list 只提供对元素的只读访问。不能通过它修改元素

td::tuple 元组类型,可以存储多个不同类型的值

std::tuple<int, float, char> t(1, 2.0, 'a');

//C#中的元组(Tuple)

  1.5 其它 

typedef 为现有类型定义别名

typedef int MyInt;  //为int类型定义别名

MyInt a=10;  //使用这个别名来声明一个整型变量a,并初始化为10。

using 为现有类型定义别名(C++11 引入)

using string = std::string;   //声明放在.cpp文件头部

string str="hello";  //在类中使用

可以使用 using来代替typedef

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

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

相关文章

2025年口碑好的pe实壁缠绕管设备厂家最新热销排行

2025年口碑好的PE实壁缠绕管设备厂家最新热销排行行业背景与市场趋势随着我国城镇化进程加速推进和基础设施建设持续投入,PE实壁缠绕管作为市政排水、工业排污等领域的重要材料,市场需求呈现稳定增长态势。根据中国塑…

2025年知名的甜酒酿用户好评厂家排行

2025年知名的甜酒酿用户好评厂家排行行业背景与市场趋势甜酒酿作为中国传统发酵食品的代表之一,近年来随着消费者对健康食品需求的增长,市场规模持续扩大。据中国食品工业协会最新数据显示,2024年我国甜酒酿市场规模…

ubuntu: apt安装redis

一,安装 # apt install redis 查看状态: # systemctl status redis.service ● redis-server.service - Advanced key-value storeLoaded: loaded (/usr/lib/systemd/system/redis-server.service; enabled; preset:…

2025年口碑好的PPR给水管设备厂家最新热销排行

2025年口碑好的PPR给水管设备厂家最新热销排行行业背景与市场趋势PPR给水管作为建筑给排水系统中的核心材料,近年来随着我国城镇化进程加速和建筑品质提升需求增长,市场规模持续扩大。据中国塑料加工工业协会最新数据…

高性能场景推荐使用PostgreSQL - 指南

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

2025年知名的家具三折轨最新TOP厂家排名

2025年知名的家具三折轨最新TOP厂家排名行业背景与市场趋势随着中国家居制造业的持续升级和消费者对家具品质要求的不断提高,家具五金配件行业迎来了快速发展期。据中国五金制品协会最新数据显示,2024年中国家具五金…

“最小删除步数”错题复盘

“最小删除步数”错题复盘在刷“最小删除步数使两个字符串相等”这道题时,我从“思路跑偏”到“实现全错”,再到“逐步修正”,踩了很多典型坑。这道题看似是简单的字符串操作,实则考察对动态规划(LCS)的理解和题…

两个数组的dp问题 - 实践

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

k8s级联删除策略

k8s级联删除策略前台级联删除:pod等从属对象删除之后,再删除所有者对象(比较慢)删除顺序:删除pod a -> 删除rs a-> 删除deploy a命令:kubectl delete deploy a --cascade=foreground 后台级联删除:删除所…

2025年口碑好的异形工业铝型材厂家最新推荐排行榜

2025年口碑好的异形工业铝型材厂家最新推荐排行榜行业背景与市场趋势工业铝型材作为现代工业制造的重要基础材料,在建筑、交通、电子、机械等领域应用广泛。根据中国有色金属工业协会最新数据显示,2024年中国铝型材市…

qemu+linux kernel+busybox搭建linux内核学习环境

前言:里面的知识很多理解的都不到位,不保证正确性,等后期学习好,再来修改。 前提:架构x86_64 一、准备工作sudo apt update sudo apt install build-essential qemu-system-x86 gdb git flex bison libncurses5-d…

2025年正规的电加热导热油炉厂家选购指南与推荐

2025年正规的电加热导热油炉厂家选购指南与推荐行业背景与市场趋势电加热导热油炉作为工业加热领域的关键设备,近年来随着环保政策趋严和能效标准提升,市场需求持续增长。根据中国锅炉行业协会2024年发布的《工业加热…

数据库原理与设计 - 教程

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

2025年口碑好的湘潭水泥支撑厂家推荐及选择参考

2025年口碑好的湘潭水泥支撑厂家推荐及选择参考行业背景与市场趋势水泥支撑行业作为建筑基础材料领域的重要组成部分,近年来随着我国基础设施建设的持续投入而保持稳定增长。据中国建筑材料联合会最新数据显示,2024年…

2025年正规的仪器计量校准厂家最新用户好评榜

2025年正规的仪器计量校准厂家最新用户好评榜行业背景与市场趋势仪器计量校准行业作为现代工业质量保障体系的重要支撑,近年来随着"中国制造2025"战略的深入推进和制造业转型升级的需求,市场规模持续扩大。…

AIGC|AI优化企业新榜单与选择指南 - 二当家

AI优化企业:2025年数字营销生态的变革者 解码AI优化企业如何重构流量生态与商业价值 AI优化企业——从技术穿透到全域增长的智能引擎 在2025年的数字营销战场,AI优化已从技术工具升维为商业生态重构的核心引擎。当传…

实用指南:# 深入理解Linux内核与用户态通信:Netlink机制实战

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

2025年质量好的养生托玛琳床垫TOP品牌厂家排行榜

2025年质量好的养生托玛琳床垫TOP品牌厂家排行榜行业背景与市场趋势随着健康生活理念的普及,养生寝具市场近年来呈现爆发式增长。据中国睡眠研究会2024年发布的《中国健康睡眠产业白皮书》显示,2023年中国功能性床垫…

S3D 模型对象权限检查

效果展示:代码如下public class CheckPG : BaseModalCommand{public override void OnStart(int instanceId, object argument){base.OnStart(instanceId, argument);if (ClientServiceProvider.SelectSet.Count == 0…

Python实现社交网络分析SNA公司董事数据与跨行业网络桥接识别可视化|附代码数据

全文链接:https://tecdat.cn/?p=44242 原文出处:拓端数据部落公众号 分析师:Song Yang引言 在数字化时代,企业间的关联早已超越股权与业务合作,董事作为核心决策参与者,其跨企业任职形成的社交网络逐渐成为资源…