【C++】零碎知识点汇总_1

news2025/1/11 5:40:36
  1. abs() 函数:
    • abs() 是 C 和 C++ 标准库中的函数,用于计算整数的绝对值。
    • 在 C 中,abs() 函数的原型位于 <stdlib.h> 头文件中,用于整数类型
    • 在 C++ 中,abs() 函数的原型位于 <cstdlib> 头文件中,并可处理整数类型
  2. fabs() 函数:
    • fabs() 是 C 和 C++ 标准库中的函数,用于计算浮点数的绝对值。
    • 在 C 中,fabs() 函数的原型位于 <math.h> 头文件中,用于浮点数类型
    • 在 C++ 中,fabs() 函数的原型位于 <cmath> 头文件中,并可处理浮点数类型

短整型的取值范围为-32768到32767之间

设x,y,z和k都是int型变量,则执行表达式:x=(y=4,z=16,k=32)后,x的值为32。对于混合赋值表达式,它的值是最后一个被赋值的变量的值。

赋值操作的结果是被赋的值本身。因此,表达式 i = 0 的结果是 0。

‘a’ ASCII值为97

“abc”>0表达式的值为1:表达式 “abc” > 0 的结果为1(真值)。

这是因为在C++中,当一个字符串与一个数值进行比较时,会发生隐式的类型转换。字符串会被转换为指针,指向其字符数组的首个元素。

在这种情况下,字符串 “abc” 被转换为指向字符 ‘a’ 的指针。而指针的值是内存地址,它可以与数值进行比较。

当我们将指针与整数 0 进行比较时,它实际上是在比较指针的值(即内存地址)是否大于 0。

由于指针的值(字符 ‘a’ 的内存地址)通常大于 0,所以比较表达式 “abc” > 0 的结果为真(1)。

需要注意的是,比较字符串与数值并不是一个常见的做法,因为其结果可能与预期不符。通常情况下,我们会使用字符串与字符串进行比较,而不是将字符串与数值进行比较。

二维数组定义的四种方式:

  1. 数据类型 数组名[ 行数 ][ 列数 ];
  2. 数据类型 数组名[ 行数 ][ 列数 ] = { {数据1,数据2 } ,{数据3,数据4 } };
  3. 数据类型 数组名[ 行数 ][ 列数 ] = { 数据1,数据2,数据3,数据4};
  4. 数据类型 数组名[ ][ 列数 ] = { 数据1,数据2,数据3,数据4};

cin跟cout刚好相反,它是一个输入流对象。调用它内部的函数get(),就可以读取键盘的输入;等待键盘输入的时候,窗口就会一直开着。cin.get();这里的键盘输入是以回车作为结束标志的,所以运行看到结果之后,直接敲回车就可以退出了。

const修饰的对象一旦创建就不能改变,所以必须初始化。

跟使用 #define定义宏常量相比,const定义的常量有详细的数据类型,而且会在编译阶段进行安全检查,在运行时才完成替换,所以会更加安全和方便。

计算机可寻址的内存最小单元是8位,也就是一个字节(Byte)

由于char(1个字节)和bool相对特殊,我们先介绍其它四种。C++标准中对它们有最小长度的要求,比如:

一般来讲,float至少有6位有效数字,double至少有15位有效数字。所以浮点类型不仅能表示小数,还可以表示(绝对值)非常大的整数。

变量占用的空间大小只跟类型有关,跟变量具体的值无关。

一个字节能表示的最大数是28 = 256

所以short能表示的数有2^16 = 65536 个,考虑正负,能表示的范围就是-32768 ~ 32767;而int表示的数范围则为 - 2^31 ~ 2^31 - 1

“无符号”版本的类型,只要定义时在类型前加上unsigned就可以

当数值超出了整型能表示的范围,程序本身并不会报错,而是会让数值回到能表示(范围)的最小值;这种情况叫做“数据溢出”(或者“算术溢出”),写程序时一定要避免

比如字母“A”的编码是65,数字字符“0”的编码是48

所以把char当做小整数时,有两种显式的定义方式:signed char 和 unsigned char;至于char定义出来的到底带不带符号,就看编译器的具体实现了。

另外, C++还对字符类型进行了“扩容”,提供了一种“宽字符”类型wchar_t。wchar_t会在底层对应另一种整型(比如short或者int),具体占几个字节要看系统中的实现。

wchar_t会随着具体实现而变化,不够稳定;所以在C++11新标准中,还为Unicode字符集提供了专门的扩展字符类型:char16_t和char32_t,分别长16位和32位。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

以0开头的整数表示八进制数;以0x或者0X开头的代表十六进制数

(*n)++ 不同于 *n++ : 一个是指针n代表的值++,另一个是将指针指向下一个位置,然后再对递增后的指针进行解引用操作,获取解引用后的值;还是直接传引用好使,只需要将传入的值n改为&n

用户自定义的数据类型(结构体、结构体数组、共用体、枚举、类)

在C++中,*->++ 的优先级如下:

  1. .(成员访问运算符)
  2. *(解引用):用于访问指针指向的对象。
  3. ->(成员访问运算符):用于通过指针访问成员变量或成员函数。
  4. ++(递增运算符):用于将变量增加1。

D. 结构中的所有成员都是可以访问的,而联合中所有成员也可以被访问。

在结构(struct)中,每个成员都占据独立的内存空间,可以分别访问每个成员。结构体中的所有成员都可以通过成员访问操作符(.)来访问。

在联合(union)中,所有成员共享同一块内存空间,每次只能存储其中的一个成员。联合中的所有成员可以通过成员访问操作符(.)来访问。

通过成员访问操作符(.)来访问。

在联合(union)中,所有成员共享同一块内存空间,每次只能存储其中的一个成员。联合中的所有成员可以通过成员访问操作符(.)来访问。

函数的调用可以嵌套,但定义不可嵌套。

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

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

相关文章

【漏洞复现】Hikvision SPON IP网络对讲广播系统存在命令执行漏洞CVE-2023-6895

漏洞描述 Hikvision Intercom Broadcasting System是中国海康威视(Hikvision)公司的一个对讲广播系统。 Hikvision Intercom Broadcasting System是中国海康威视(Hikvision)公司的一个对讲广播系统。Hikvision Intercom Broadcasting System 3.0.3_20201113_RELEASE(HIK)版…

SpringBoot集成Skywalking实现分布式链路追踪

官方网址&#xff1a; Apache SkyWalking官方文档&#xff1a; SkyWalking 极简入门 | Apache SkyWalking下载地址&#xff1a;Downloads | Apache SkyWalking Agent&#xff1a;以探针的方式进行请求链路的数据采集&#xff0c;并向管理服务上报&#xff1b; OAP-Service&am…

2023年快要结束了,今年哪些计算机书值得推荐?

2023年推荐新书有如下几本&#xff1a; 1、软件开发安全之道概念、设计与实施 软件安全设计和实施&#xff0c;覆盖安全概念、设计与实践&#xff0c;让您轻松应对各种威胁与挑战&#xff0c;帮助读者培养安全意识&#xff0c;全面了解软件开发安全之道。 2、C Templates&…

云服务器搭建GitLab

经验总结&#xff1a; 1、配置需求&#xff1a;云服务器内存最低4G 2、内存4G的云服务器&#xff0c;在运行容器后&#xff0c;会遇到云服务器操作卡顿问题&#xff0c;这里有解决方案 转载&#xff1a;服务器搭建Gitlab卡顿解决办法-CSDN博客 3、云服务器的操作系统会影响…

OpenAI大反击!称纽约时报涉嫌故意操纵,且数据是「合理使用」

大家好我是二狗。 《纽约时报》向法院起诉OpenAI侵犯版权后续事件来了&#xff01; 就在今天&#xff0c;OpenAI进行了一场“危机公关”&#xff1a;直接在官方博客上撰文发声&#xff0c;反驳《纽约时报》的诉讼&#xff0c;其主要观点有四个&#xff1a; 1、我们正在和新闻…

将WebGL打包的unity项目部署至Vue中

一、webgl打包 创建一个空项目&#xff08;或者直接使用现成的项目都可以&#xff09;这里以该空项目为例子 注意&#xff1a; 如果你的unity项目中有文字&#xff0c;不需要使用unity默认的字体&#xff0c;需要更改它的字体&#xff0c;否则在最后生成的页面中会显示不出来…

Vue过滤器详解

聚沙成塔每天进步一点点 本文内容 ⭐ 专栏简介基本用法多个过滤器的串联过滤器在指令中的应用全局过滤器 ⭐ 本期推荐 ⭐ 专栏简介 Vue学习之旅的奇妙世界 欢迎大家来到 Vue 技能树参考资料专栏&#xff01;创建这个专栏的初衷是为了帮助大家更好地应对 Vue.js 技能树的学习。每…

reactNative0.71版本的使用

开发环境配置 参考reactNative 官网 版本选中0.71 打包配置 1. IOS 打开项目 -> 进入ios目录->执行命令 pod install ->项目名称.xcworkspace -> 使用xcode打开->配置证书 证书配置截图如下 &#x1f4a1;tips&#xff1a;TARGETS目录下会有多个文件&#x…

Java获取时间,自动给创建时间创建人等赋值

ApiOperation("添加")PostMapping()public ApiResult<?> save(RequestBody FeePropertyRoomArea feePropertyRoomArea) {User usergetLoginUser();LocalDateTime localDateTime LocalDateTime.now();feePropertyRoomArea.setCreateTime(localDateTime);feePr…

数据库编程大赛冠军:郑凌云:0.67秒通过百万级数据评测!SQL代码惊现神之一手!

12月27日&#xff0c;NineData和云数据库技术社区主办&#xff0c;华为云、火山引擎、开源中国、云和恩墨、TDengine、云猿生数据、DORIS、ITPUB等协办单位和媒体&#xff0c;共同举办了本次《数据库编程大赛》。大赛题目「用一条SQL给出扑克牌24点的计算表达式」。 以下冠军选…

VUE购物车商品的添加、删除和计算总金额功能

效果 代码 <template><div id"box"><!--全选功能--><input type"checkbox" change"handleChange" v-model"isAllChecked" /><!--绑定事件&#xff0c;不选用click&#xff0c;使用change每次check值改变会…

swing快速入门(四十三)JTree的常见节点关系用法

注释很详细&#xff0c;直接上代码 上一篇 新增内容&#xff08;一共16个常见用法&#xff0c;内容较多此处概述一下&#xff09; ⚡按各类关系查询节点或节点组内容 ⚡按各类关系查询某种关系是否成立 ⚡按各类关系查询符合某些关系的数量 package swing41_50;import javax.sw…

【vitest 单元测试】如何蹭 ant-design-web3 的PR

这篇文章分享单测经验&#xff0c;希望你能收获到有用的单测知识或者pr思路&#xff0c;填补单测的过程可以深刻理解组件内部的每一个流程&#xff0c;相信一定有所收获。 ant-design-web3 前言查看单测覆盖情况运行命令&#xff0c;本地会生成一份临时目录通过live server打开…

java基础之Java8新特性-Optional

目录 1.简介 2.Optional类常用方法 3.示例代码 4.示例代码仓库地址 1.简介 Java 8引入了一个重要的新特性&#xff0c;即Optional类。Optional类是为了解决空指针异常而设计的。 在Java中&#xff0c;当我们尝试访问一个空对象的属性或调用其方法时&#xff0c;很容易抛出…

[C#]winform使用纯opencvsharp部署yolox-onnx模型

【官方框架地址】 https://github.com/Megvii-BaseDetection/YOLOX 【算法介绍】 YOLOX是一个高性能的目标检测算法&#xff0c;它是基于YOLO&#xff08;You Only Look Once&#xff09;系列算法的Anchor Free版本。YOLOX由Megvii Technology的研究团队开发&#xff0c;并在…

“0龋齿”计划爱牙护齿公益校园行——象岭小学站

为了向儿童普及口腔健康知识&#xff0c;提高口腔健康意识&#xff0c;减少口腔疾病的发生&#xff0c;以及贯彻落实《健康中国行动&#xff08;2019-2030年&#xff09;》&#xff0c;2024年1月5日至1月6日&#xff0c;由惠州市挺秀慈善基金会主办&#xff0c;惠州市挺秀慈善会…

优化 ParamValidator,让编辑器Pycharm智能提示校验方法

目录 一、前置说明1、总体目录2、相关回顾3、本节目标 二、操作步骤1、项目目录2、代码实现3、测试代码4、日志输出 三、后置说明1、要点小结2、下节准备 一、前置说明 1、总体目录 《 pyparamvalidate 参数校验器&#xff0c;从编码到发布全过程》 2、相关回顾 基于 Valid…

HarmonyOS@Provide装饰器和@Consume装饰器:与后代组件双向同步

Provide装饰器和Consume装饰器&#xff1a;与后代组件双向同步 Provide和Consume&#xff0c;应用于与后代组件的双向数据同步&#xff0c;应用于状态数据在多个层级之间传递的场景。不同于上文提到的父子组件之间通过命名参数机制传递&#xff0c;Provide和Consume摆脱参数传…

vue3.2引用unplugin-vue-components插入,解放开发中import组件

目录 前言引用unplugin-vue-components插件的优缺点优点缺点 unplugin-vue-components插件引入安装插件配置vite配置更新TypeScript配置使用代码位置 总结Q&A 前言 unplugin-vue-components是一个用于Vue.js项目的插件&#xff0c;特别适用于Vite和Webpack构建工具。它的主…

Python基础学习(一)

Python基础语法学习记录 输出 将结果或内容呈现给用户 print("休对故人思故国&#xff0c;且将新火试新茶&#xff0c;诗酒趁年华") # 输出不换行&#xff0c;并且可以指定以什么字符结尾 print("青山依旧在",end ",") print("几度夕阳红…