当前位置: 首页 > news >正文

C++ Primer Plus 学习笔记(二)—— 复合类型

数组

当我们只是定义了数组,而没有对数组进行初始化时,那数组的值将是未定义的。

在对数组进行初始化时,如果只对数组的一部分进行初始化,编译器会将把其他元素自动设置为0。

#include <iostream>using namespace std;int main()
{int nums1[3] = { 0 };cout << nums1[0] << " " << nums1[1] << " " << nums1[2] << endl;int nums2[3];cout << nums2[0] << " " << nums2[1] << " " << nums2[2] << endl;return 0;
}

输出:

0 0 0
57 0 2037520

字符串

只有以空字符(\0)结尾的char数组才是字符串,这是因为C或C++在处理字符串时是以空字符作为结束标识的。

当初始化一个数组未指定长度时,编译器会对自动计算长度,通常这是一种很糟的做法,但是这种做法对于字符数组初始化为一个字符串的情况下是更安全的,因为字符串常量会隐式地包含结尾符。

#include <iostream>using namespace std;int main()
{char dog[5] = {'b','e','a','u','x'};char cat[5] = {'b','e','a','u','\0'};cout << dog << endl;cout << cat << endl;// char bird[5] = "birds"; //编译报错。"birds"实际长度为6,即默认结尾会含\0char fish[] = "fishs";cout << fish << endl;return 0;
}

输出:

beaux�u
beau
fishs

结构

有些信息在存储时,并不需要占用一个完整的字节,而只需占几个或一个二进制位。C 语言提供了一种数据结构,称为"位域"或"位段"。所谓"位域"是把一个字节中的二进位划分为几个不同的区域,并说明每个区域的位数。

C++也允许指定占用特定位数的结构成员,字段的类型应为整型或枚举,且有以下限制:

  • 一个位域必须存储在同一个字节中,不能跨两个字节
  • 由于位域不允许跨两个字节,因此位域的长度不能大于一个字节的长度
  • 位域可以无位域名,这时它只用来作填充或调整位置。无名的位域是不能使用的。
#include <iostream>using namespace std;struct bitTest {unsigned int SN: 4;unsigned int: 4; //4 bit unusedbool b1: 1;bool b2: 1;
};int main()
{bitTest bt = { 14, true, false };// 结构体会以最大长度对齐,即 SN+填充 占4字节,b1+b2 占4字节cout << sizeof(bt) << endl; // 输出:8return 0;
}

指针

C++允许将指针和整数相加,加1的结果等于原来的地址值加上指向的对象占用的字节数。

#include <iostream>using namespace std;int main()
{int nums[3] = { 1, 2, 3 };int* np = nums;cout << "np=" << np << ", nums=" << nums << ", &nums[0]=" << &nums[0] << endl;cout << "np+1=" << ++np << ", value=" << *np << endl; return 0;
}

输出:

np=0x61fe0c, nums=0x61fe0c, &nums[0]=0x61fe0c
np+1=0x61fe10, value=2

相关文章:

C++ Primer Plus 学习笔记(二)—— 复合类型

数组 当我们只是定义了数组&#xff0c;而没有对数组进行初始化时&#xff0c;那数组的值将是未定义的。 在对数组进行初始化时&#xff0c;如果只对数组的一部分进行初始化&#xff0c;编译器会将把其他元素自动设置为0。 #include <iostream>using namespace std;in…...

代码随想录算法训练营第七天 | 454.四数相加II 、 383. 赎金信、15. 三数之和、18. 四数之和 、总结

打卡第七天&#xff0c;还是哈希表。 今日任务 454.四数相加II383.赎金信15.三数之和18.四数之和总结 454.四数相加II 代码随想录 class Solution { public:int fourSumCount(vector<int>& nums1, vector<int>& nums2, vector<int>& nums3, ve…...

apply函数族

apply函数族 apply函数族是R语言中帮助用户实现高效的向量化运算的一系列函数&#xff0c;包括apply,lapply,sapply,vapply等。 apply() apply函数以列或行为单位进行循环操作&#xff0c;可以处理matrix、array数据&#xff0c;返回一个向量或matrix。 apply(data,1/2,fuc…...

读书笔记可读性素材

《深入理解Java虚拟机》 《深入理解Java虚拟机》 《深入理解Java虚拟机》 本地方法栈&#xff08;Native Method Stacks&#xff09; 本地方法栈&#xff08;Native Method Stacks&#xff09; 本地方法栈&#xff08;Native Method Stacks&#xff09; -----------------…...

【C++】vector 模拟实现

vectorvector 容器vector 基本使用vector 定义库中各类接口的使用迭代器容量相关接口元素访问相关接口元素修改相关接口模拟实现 vector前期准备构造与析构赋值运算符重载迭代器相关容量相关元素访问相关元素的修改相关二维数组的创建对于自定义类型数据的测试vector 容器 C S…...

canvas初体验

canvas介绍 Canvas 最初由Apple于2004 年引入&#xff0c;用于Mac OS X WebKit组件&#xff0c;为仪表板小部件和Safari浏览器等应用程序提供支持。后来&#xff0c;它被Gecko内核的浏览器&#xff08;尤其是Mozilla Firefox&#xff09;&#xff0c;Opera和Chrome实现&#x…...

JavaWeb12-线程通讯(线程等待和唤醒)

目录 1.方法介绍 1.1.wait()/wait(long timeout)&#xff1a;让当前线程进入等待状态。 1.1.1.wait执行流程 1.1.2.wait结束等待的条件 1.1.3.wait() VS wait(long timeout) 1.1.4.为什么wait要放在Object中&#xff1f; --->PS&#xff1a;wait(0) 和 sleep(0) 的区…...

江苏专转本如何事半功倍的备考

专转本如何事半功倍的备考 一个人学习成绩的优劣取决于他的学习能力&#xff0c;学习能力包括三个要素&#xff1a;规范的学习行为&#xff1b;良好的学习习惯&#xff1b;有效的学习方法。有了规范的学习行为才能培养出良好的学习习惯&#xff0c;形成了良好的学习习惯就会形成…...

linux下安装mongoDB

一、下载mongoDB包 下载地址&#xff1a; https://www.mongodb.com/try/download/community 个人建议&#xff1a;如果是学习阶段&#xff0c;使用5以下版本更好些。 二、安装及配置 1、安装 # 1、解压 $ tar -zxvf mongodb-linux-x86_64-rhel70-4.4.19-rc1.tgz# 2、迁移目…...

掌握MySQL分库分表(七)广播表、绑定表实战,水平分库+分表实现及之后的查询和删除操作

文章目录什么是广播表广播表实战数据库配置表Java配置实体类配置文件测试广播表水平分库分表配置文件运行测试什么是绑定表&#xff1f;绑定表实战配置数据库配置Java实体类配置文件运行测试水平分库分表后的查询和删除操作查询操作什么是广播表 指所有的分片数据源中都存在的…...

企业为什么需要数据可视化报表

数据可视化报表是在商业环境、市场环境已经改变之后&#xff0c;发展出来为当前企业提供替代解决办法的重要方案。而且信息化、数字化时代&#xff0c;很多企业已经进行了初步的信息化建设&#xff0c;沉淀了大量业务数据&#xff0c;这些数据作为企业的资产&#xff0c;是需要…...

5个有效的华为(HUAWEI)手机数据恢复方法

5个有效的手机数据恢复方法 华为智能手机中的数据丢失比许多人认为的更为普遍。发生这种类型的丢失有多种不同的原因&#xff0c;因此数据恢复软件的重要性。您永远不知道您的智能手机何时会在这方面垮台&#xff1b;因此&#xff0c;预防总比哀叹好&#xff0c;这就是为什么众…...

【Java并发编程】线程安全(一)Synchronized原理

Synchronized底层实现 简单来说&#xff0c;Synchronized关键字的执行主体是线程对象&#xff0c;加锁是通过一个锁对象来完成的是&#xff0c;而锁对象底层关联了一个c源码的monitor的对象&#xff0c;monitor对象底层又对应了操作系统级别的互斥锁&#xff0c;同一时刻只有一…...

[apollo]vue3.x中apollo的使用

[apollo]vue3.x中apollo的使用通过客户端获取Apollo配置环境工具的安装获取Apollo配置相关代码错误提示Uncaught (in promise) Error: Apollo client with id default not found. Use provideApolloClient() if you are outside of a component setup通过开放接口获取Apollo配置…...

system()函数启用新进程占有原进程的文件描述符表的问题

我在A程序中占用了/dev/video0这个独占模式的设备文件&#xff0c;在A中用system函数启用了B程序&#xff0c;B程序的代码中并不包含对/dev/video0的访问&#xff0c;但是我发现B程序也占用了/dev/video0&#xff0c;并且我在A程序中关闭了/dev/video0后&#xff0c;A程序不再占…...

nignx(安装,正反代理,安装tomcat设置反向代理,ip透传)

1安装nginx 安装wget Yum install -y wget 下载(链接从官网找到右键获取) 以下过程root 安装gcc Yum -y install gcc c 安装pcre Yum install -y pcre pcre-devel Openssl Yum install -y openssl openssl-devel 安装zlib Yum install -y zlib zlib-devel 安装make Yum inst…...

sklearn模块常用内容解析笔记

文章目录 回归模型评价指标R2_score预备知识R2_score计算公式r2_score使用方法注意事项参考文献回归模型评价指标R2_score 回归模型的性能的评价指标主要有:RMSE(平方根误差)、MAE(平均绝对误差)、MSE(平均平方误差)、R2_score。但是当量纲不同时,RMSE、MAE、MSE难以衡量模…...

我的 System Verilog 学习记录(2)

引言 从本文开始&#xff0c;就开始系统学习 System Verilog &#xff0c;不只是语法&#xff0c;还有结合 Questa Sim 的实际编程练习、Debug。 本文简单介绍 System Verilog 语言的用途以及学习的必要性。 前文链接&#xff1a; 我的 System Verilog 学习记录&#xff08…...

【调研报告】Monorepo 和 Multirepo 的风格对比及使用示例

带有权重的Monorepo和Multirepo对比 功能/特性MonorepoMultirepoMonorepo权重值Multirepo权重值代码管理管理多个代码库更加复杂管理单个代码库更加简单37依赖管理可以简化依赖管理依赖冲突可能会更加困难73构建和部署构建和部署更加容易构建和部署可能需要更多的配置82团队协…...

Retrofit源码分析

文章目录一、简介二、源码分析2.1Retrofit的本质流程2.2源码分析2.2.1 创建Retrofit实例步骤1步骤2步骤3步骤4步骤5总结2.2.2创建网络请求接口的实例外观模式 & 代理模式1.外观模式2. 代理模式步骤3步骤4总结2.2.3执行网络请求同步请求OkHttpCall.execute()1.发送请求过程2…...

3步突破格式限制:网易云音乐NCM文件转换终极指南

3步突破格式限制&#xff1a;网易云音乐NCM文件转换终极指南 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 还在为网易云音乐下载的NCM加密文件无法在其他设备播放而烦恼吗&#xff1f;ncmdump开源工具为你提供完美的NCM格式转换解…...

Taotoken 模型广场选型与切换对于项目原型开发效率的影响

&#x1f680; 告别海外账号与网络限制&#xff01;稳定直连全球优质大模型&#xff0c;限时半价接入中。 &#x1f449; 点击领取海量免费额度 Taotoken 模型广场选型与切换对于项目原型开发效率的影响 在项目原型开发阶段&#xff0c;团队的核心目标是快速验证想法、测试功能…...

如何用本地图像搜索工具实现千万级图片秒级检索:隐私优先的终极解决方案

如何用本地图像搜索工具实现千万级图片秒级检索&#xff1a;隐私优先的终极解决方案 【免费下载链接】ImageSearch 基于.NET10的本地硬盘千万级图库以图搜图案例Demo和图片exif信息移除小工具分享 项目地址: https://gitcode.com/gh_mirrors/im/ImageSearch 你是否曾经在…...

漫画阅读新体验:JHenTai如何让你在五大平台无缝畅读E-Hentai内容?

漫画阅读新体验&#xff1a;JHenTai如何让你在五大平台无缝畅读E-Hentai内容&#xff1f; 【免费下载链接】JHenTai A cross-platform manga app made for e-hentai & exhentai by Flutter 项目地址: https://gitcode.com/gh_mirrors/jh/JHenTai 还在为在不同设备上…...

Marvis 1+5 智能体协作架构深度解析:六大 Agent 各司何职?底层又如何“对话“?

Marvis 15 智能体协作架构深度解析&#xff1a;六大 Agent 各司何职&#xff1f;底层又如何"对话"&#xff1f; 前言 2026 年 5 月 20 日&#xff0c;腾讯正式上线了操作系统级 AI 助手马维斯&#xff08;Marvis&#xff09;。它不走传统 AI 助手的"对话框&quo…...

Android系统级证书安装:解决HTTPS抓包的SSLHandshakeException

1. 为什么系统级证书安装成了Android抓包的“最后一道墙”做Android逆向分析的朋友&#xff0c;大概率都经历过这个场景&#xff1a;Charles或Fiddler配好代理、手机连上Wi-Fi、HTTP流量哗哗地跑&#xff0c;可一打开目标App——空白页、网络错误、甚至直接闪退。点开App的设置…...

LIWC文本分析Python库:3大核心技术解析与5个实战应用场景

LIWC文本分析Python库&#xff1a;3大核心技术解析与5个实战应用场景 【免费下载链接】liwc-python Linguistic Inquiry and Word Count (LIWC) analyzer 项目地址: https://gitcode.com/gh_mirrors/li/liwc-python 语言心理分析是现代文本挖掘的重要方向&#xff0c;LI…...

Stable Video vs. Runway ML vs. Kling:学习曲线强度TOP3工具横向测评(含GPU资源消耗比、提示词容错阈值、迭代收敛周期)

更多请点击&#xff1a; https://kaifayun.com 第一章&#xff1a;Stable Video vs. Runway ML vs. Kling&#xff1a;学习曲线强度TOP3工具横向测评&#xff08;含GPU资源消耗比、提示词容错阈值、迭代收敛周期&#xff09; 在生成式视频建模领域&#xff0c;Stable Video Di…...

小红书数据采集终极指南:5种身份伪装策略破解反爬限制

小红书数据采集终极指南&#xff1a;5种身份伪装策略破解反爬限制 【免费下载链接】XHS-Downloader 小红书&#xff08;XiaoHongShu、RedNote&#xff09;链接提取/作品采集工具&#xff1a;提取账号发布、收藏、点赞、专辑作品链接&#xff1b;提取搜索结果作品、用户链接&…...

Armv8-R内存一致性模型解析与Cortex-R82实践

1. Cortex-R82/R82AE内存一致性解析&#xff1a;架构师视角的深度指南 在实时计算领域&#xff0c;内存一致性模型直接影响着多核系统的确定性和性能表现。作为Armv8-R架构的旗舰处理器&#xff0c;Cortex-R82/R82AE集群通过精细的内存属性控制机制&#xff0c;为汽车电子、工业…...