第三章——处理数据

news2024/11/13 16:00:55

面向对象编程(OOP)的本质是设计并扩展自己的数据类型。设计自己的数据类型就是让类型与数据匹配。在创建自己的类型之前必须先了解C++内置的类型。

内置的C++类型分为两组:基本类型和复合类型

简单变量

程序通常都需要存储信息,为把信息存储在计算机中,程序必须记录3个基本属性:

  • 信息将存储在哪里
  • 要存储什么值
  • 存储何种类型的信息 
int braincount;
braincount = 5;

这两行语句告诉程序,它正在存储整数,并使用名称braincount来表示该整数的值(为5)。实际上程序将找到一块能够存储整数的内存,将该内存单元标记为braincount,并将5复制到该内存单元中;然后就可以在程序中使用braincount来访问该内存单元

 变量名

必须遵循的几种简单的C++命名规则

  • 在名称中只能使用字母字符、数字和下划线(_)
  • 名称的第一个字符不能是数字
  • 区分大写字符与小写字符
  • 不能将C++关键字用作名称
  • 以两个下划线打头或以下划线和大写字母打头的名称被保留给实现(编译器及其使用的资源)使用。以一个下划线开头的名称被保留给实现,用作全局标识符
  • C++对名称的长度没有限制,但有些平台有长度限制

如果想使用两个或更多的单词组成一个名称,通常的做法是用下划线将单词分开(如my_onion) 

 整型

整型就是没有小数部分的数字。C++的基本整形分别为char、short、int、long、long long,每种类型都有有符号版本和无符号版本,因此共有10种类型

计算机内存由一些叫做位(bit)的单元组成,C++的short、int、long和long long类型通过使用不同数目的位来存储值。C++提供了一种灵活的标准,它确保了最小长度

  • short至少16位
  • int至少与short一样长
  • long至少32位,且至少与int一样长
  • long long 至少64位,且至少与long一样长 

可以像使用int一样,使用这些类型名来声明变量:

short score;
int temperature;
long position;
long long number;

 short 是 short int的简称,long是long int的简称

sizeof运算符返回类型或变量的长度,单位为字节

 头文件climits定义了符号常量来表示类型的限制

 如果不对函数内部定义的变量进行初始化,该变量的值将是不确定的。这意味着该变量的值将是它被创建之前,相应内存单元保存的值。

无符号类型

前面介绍的几种类型都有一种存储负数值的无符号变体,其优点是可以增大变量能够存储的最大值,例如short表示的范围为-32768~+32767,而无符号版本则表示的范围是0~65535。要创建无符号版本的基本整型,只需使用关键字unsigned来修改声明即可(unsigned是unsigned int的缩写):

unsigned short change;
unsigned int rovert;
unsigned long gone;
unsigned long long abc;

整型变量的行为就像里程表。如果超越了限制,其值将为范围另一端的取值(如下图)。C++确保了无符号类型的这种行为;但不保证符号整型超越限制(上溢和下溢)时不出错,而这正是现实中最常见的行为。

 

 const限定符

符号名称指出了常量表示的内容,另外如果程序在多个地方使用同一个常量,则需要修改该常量时,只需修改一个符号定义即可。C++有一种更好的处理符号常量的方法,就是使用const关键字来修改变量声明和初始化

const type name = value;

 应在声明中对const进行初始化

浮点数

浮点数能够表示带小数部分的数字,比如3.6,3.1415926这样的数字。计算机将这样的值分成两部分存储,一部分表示值,另一部分用于对值进行放大或缩小

书写浮点数

 C++有两种书写浮点数的方式。第一种是使用常用的标准小数点表示法:

12.34

9356.23

8.0

 即使小数部分为0,小数点也将确保该数字以浮点格式(而不是整数格式)表示

第二种表示浮点值的方法叫E表示法,如

3.45E6

表示的是3.45与1000000相乘的结果,E6指的是10的6次方。6被称为指数,3.45被称为尾数

E表示法确保数字以浮点格式存储,即使没有小数点。(可以用E也可以用e,指数可以是正数也可以是负数)。但是数字中不能有空格,7.3 E6就是非法的。

指数为负意味着除以10的乘方,8.3E-4表示8.3/10^4

浮点类型

C++有3种浮点类型:float、double和 long double。这些类型是按它们可以表示的有效数位和允许的指数最小范围来描述的。

与整数相比,浮点数有两大优点。一是他们可以表示整数之间的值,其次由于有缩放因子,它们可以表示的范围大得多。最后,浮点运算的速度通常比整数运算慢,且精度将降低。

C++算术运算符

下面是5种基本的C++算术运算符

  • + 运算符对操作数执行加法运算
  • - 运算符从第一个数中减去第二个运算数 
  • * 运算符将操作数相乘
  • / 运算符用第一个数除以第二个数。如果两个操作数都是整数,则结果为商的整数部分,小数部分被丢弃;如果其中有一个(或两个)操作数是浮点数,则小数部分将保留,结果为浮点数
  • % 运算符求模。它生成第一个数除以第二个数后的余数。两个操作数都必须是整型,将该运算符用于浮点数将导致编译错误

对于float,C++只保证6位有效位

类型转换

C++自动执行很多类型转换

  • 将一种算术类型的值赋给另一种算术类型的变量时,C++将对值进行转换;
  • 表达式中包含不同的类型时,C++将对值进行转换;
  • 将参数传递给函数时,C++将对值进行转换;

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

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

相关文章

git commit history导出

git log --after"2022-1-1" --dateshort --prettyformat:"%H","%an","%ae","%ad","%s" --shortstat --no-merges再简洁一点 git log --after"2022-4-1" --dateshort --prettyformat:%H,%an,%ae,%ad,%…

Network Neuroscience:整个生命周期的功能连接体指纹

导读 随着年龄的增长,人脑功能结构发生了系统性的变化。然而,功能连接(FC)作为一种检测独特“连接体指纹”的强大特征,使个体能够在同龄人中被识别出来。虽然已在年轻人样本中观察到这种指纹,但该方法在整个生命周期内的可靠性尚…

ACL 2023|大模型时代,自然语言领域还有什么学术增长点?

国际计算语言学年会(Annual Meeting of the Association for Computational Linguistics,简称 ACL)是自然语言处理(NLP)领域的顶级国际会议,ACL 2023 将于2023年7月9-14日在加拿大多伦多举行。随着人工智能…

电脑高手的选择:为何只需一款杀毒软件?

对于电脑高手来说,保护计算机免受恶意软件和病毒的侵害至关重要。然而,有些人可能认为安装多个杀毒软件能够提供更优质的防护能力。但事实上,电脑高手通常只选择安装一款杀毒软件,这其中包含着一定的原因和考虑。本文将探讨为什么…

Java版本企业电子招投标采购系统源码功能模块功能描述+数字化采购管理 采购招投标

功能模块: 待办消息,招标公告,中标公告,信息发布 描述: 全过程数字化采购管理,打造从供应商管理到采购招投标、采购合同、采购执行的全过程数字化管理。通供应商门户具备内外协同的能力,为外部…

基于Python+MySQL所写的医院管理系统

点击以下链接获取源码资源: https://download.csdn.net/download/qq_64505944/87985429?spm1001.2014.3001.5503 目录 摘要 I 1 需求分析 1 1.1 任务描述 1 1.2 需求分析的过程 1 1.3 业务需求 2 1.4 功能描述 2 2 总体设计 3 2.1 系统开发环境 3 2.2 系统功能流…

【云原生】Pod 的生命周期

Pod 的生命周期 本文讲解的是 Kubernetes 中 Pod 的生命周期,包括生命周期的不同阶段、存活和就绪探针、重启策略等。 Pod phase Pod 的 status 字段是一个 PodStatus 对象,PodStatus中有一个 phase 字段。 Pod 的相位(phase)…

DOM事件机制(事件流、事件委托、事件类型)以及BOM

HTML DOM 允许 JavaScript 对 HTML 事件作出反应。JavaScript 能够在事件发生时执行,比如当用户点击某个 HTML 元素时。 JavaScript与HTML之间的交互是通过事件实现的。事件就是文档或浏览器窗口中发生的一些特定的交互瞬间。 虽然 ECMAScript 把浏览器对象模型&…

【面试题28】什么是PHP-FPM?它与PHP和Nginx有什么关系

文章目录 一、前言二、什么是PHP-FPM?三、PHP-FPM的生命周期3.1 启动阶段3.2 初始化阶段3.3 请求处理阶段3.4 关闭阶段 四、PHP-FPM与PHP的关系五、PHP-FPM与Nginx的通信方式六、总结 一、前言 本文已收录于PHP全栈系列专栏:PHP面试专区。 计划将全覆盖P…

【视觉SLAM入门】2.旋转--李群与李代数

"川泽纳污" 0. 一个例子1. 群和李群2. 李代数2.1 推导和性质2.2 s o ( 3 ) \mathscr{so(3)} so(3) 和 s e ( 3 ) \mathscr{se(3)} se(3)2.3 计算李代数的幂 e x p ( ϕ \;exp(\phi exp(ϕ^ ) ) )2.4 李代数乘法2.5 从李代数乘法到导数:2.5.1 直接求导2.…

100天精通Golang(基础入门篇)——第14天:深入解析Go语言函数->从概念到实践,助您精通基础知识!(基础)

🌷 博主 libin9iOak带您 Go to Golang Language.✨ 🦄 个人主页——libin9iOak的博客🎐 🐳 《面试题大全》 文章图文并茂🦕生动形象🦖简单易学!欢迎大家来踩踩~🌺 🌊 《I…

第11章:C语言数据结构与算法初阶之排序

系列文章目录 文章目录 系列文章目录前言排序的概念及其运用排序的概念常见的排序算法 常见排序算法的实现1.直接插入排序2. 希尔排序(缩小增量排序)3. 直接选择排序4. 堆排序5. 冒泡排序6. 快速排序将区间按照基准值划分为左右两半部分的常见方式&#…

使用selenium爬取猫眼电影榜单数据

文章目录 前言导入所需的库&#xff1a;设置ChromeDriver的路径&#xff0c;并创建一个Chrome浏览器实例&#xff1a;打开目标网页&#xff0c;这里以猫眼电影榜单页面为例&#xff1a;使用XPath定位电影信息。通过查看网页源代码&#xff0c;发现电影信息所在的<dd>标签…

深度学习之目标检测Faster RCNN模型算法流程详解说明(超详细理论篇)

1.Faster RCNN论文背景 2. Faster-RCNN算法流程 &#xff08;1&#xff09;Fast-RCNN算法流程 &#xff08;2&#xff09;特征提取conv layers &#xff08;3&#xff09;Region Proposal Networks(RPN) &#xff08;4&#xff09;ROI Pooling作用 &#xff08;5&#xff09;Cl…

Spring定时器调度实现的原理

1、使用Spring定时器任务实现 package com.suyun.modules.vehicle.timetask;import com.alibaba.schedulerx.worker.domain.JobContext; import com.alibaba.schedulerx.worker.processor.JavaProcessor; import com.alibaba.schedulerx.worker.processor.ProcessResult; impo…

arm学习cortex-A7中断按键控制led灯亮灭

main.c #include "key.h" extern void printf(const char *fmt, ...); void delay_ms(int ms) {int i,j;for(i 0; i < ms;i)for (j 0; j < 1800; j); } int main() {//rcc初始化 RCC->MP_AHB4ENSETR | (0x3 << 4);//初始化按键GPIOF模式为输入模式…

cyclo(-D-Ala-Val),15136-27-3,可以通过肽筛选发现的多肽

&#xff08;文章资料汇总来源于&#xff1a;陕西新研博美生物科技有限公司小编MISSwu&#xff09;​ 为大家介绍&#xff08;CAS&#xff1a;15136-27-3&#xff09;,试剂仅用于科学研究&#xff0c;不可用于人类&#xff0c;非药用&#xff0c;非食用。 英文名称&#xff1a…

从刷题到解决问题再到研究创新

题记&#xff1a;死的知识学再多也没大用。 明明自觉学会了不少知识&#xff0c;可真正开始做题时&#xff0c;却还是出现了“一支笔&#xff0c;一双手&#xff0c;一道力扣&#xff08;Leetcode&#xff09;做一宿”的窘境&#xff1f;你是否也有过这样的经历&#xff0c;题…

移动端H5页面引入高德地图的一些问题记录

web端显示 移动端显示 移动端和web端显示的地图范围一样大&#xff0c;并且在移动端地图的zoom和web端一致 这个问题是在公司开发邀请函的时候碰到的&#xff0c;因为要在移动端显示的范围足够大&#xff0c;使用zoom并不能满足需求了&#xff0c;例如如下代码 amap new AMa…

Sqlserver 中nchar(n)、varchar(n)、nvarchar(n)和nvarchar(max)的区别

nchar(n): 固定大小字符串数据。 n 用于定义字符串大小&#xff08;以双字节为单位&#xff09;&#xff0c;并且它必须是 1 到 4,000 之间的值。 存储大小为 n 字节的两倍。 varchar(n): 长度为 n 个字节的可变长度且非 Unicode 的字符数据。n 必须是一个介于 1 和 8,000 之间…