C++学习专栏【基础知识2】C++数据类型

1、内置数据类型

基本内置类型 C++为程序员提供了丰富的内置数据类型以及用户自定义数据类型。以下表格列出了七种基本的 C++ 数据类型 -

类型关键字
布尔值bool
字符char
整数int
浮点数float
双精度浮点数double
无值void
宽字符wchar_t

基本类型中的几种可以使用一个或多个类型修饰符进行修改 -

  • signed
  • unsigned
  • short
  • long

以下是一个示例,将在计算机上生成各种数据类型的正确大小。

演示示例:

#include <iostream>
using namespace std;int main() {cout << "Size of char : " << sizeof(char) << endl;cout << "Size of int : " << sizeof(int) << endl;cout << "Size of short int : " << sizeof(short int) << endl;cout << "Size of long int : " << sizeof(long int) << endl;cout << "Size of float : " << sizeof(float) << endl;cout << "Size of double : " << sizeof(double) << endl;cout << "Size of wchar_t : " << sizeof(wchar_t) << endl;return 0;
}

此示例使用了 endl,它在每行后插入一个换行字符,并使用 << 操作符将多个值传递到屏幕上。我们还使用了 sizeof() 运算符来获取各种数据类型的大小。

当上述代码被编译和执行时,它会产生如下结果,这些结果可能因计算机而异 

以下表格显示了变量类型、在内存中存储值所需的内存量以及该类型变量所能存储的最大和最小值。

类型典型位宽典型范围
char1 字节-127 到 127 或 0 到 255
unsigned char1 字节0 到 255
signed char1 字节-127 到 127
int4 字节-2147483648 到 2147483647
unsigned int4 字节0 到 4294967295
signed int4 字节-2147483648 到 2147483647
short int2 字节-32768 到 32767
unsigned short int2 字节0 到 65,535
signed short int2 字节-32768 到 32767
long int8 字节-9223372036854775808 到 9223372036854775807
signed long int8 字节与 long int 相同
unsigned long int8 字节0 到 18446744073709551615
long long int8 字节-(2^63) 到 (2^63)-1
unsigned long long int8 字节0 到 18,446,744,073,709,551,615
float4 字节-
double8 字节-
long double12 字节-
wchar_t2 或 4 字节1 个宽字符

以上所示的变量大小可能会因使用的编译器和计算机不同而有所不同。

另外,以下是通过示例展示如何获取计算机上不同数据类型的大小和范围:

#include <iostream>
#include <limits>
using namespace std;int main() {std::cout << "Int Min " << std::numeric_limits<int>::min() << endl;std::cout << "Int Max " << std::numeric_limits<int>::max() << endl;std::cout << "Unsigned Int  Min " << std::numeric_limits<unsigned int>::min() << endl;std::cout << "Unsigned Int Max " << std::numeric_limits<unsigned int>::max() << endl;std::cout << "Long Int Min " << std::numeric_limits<long int>::min() << endl;std::cout << "Long Int Max " << std::numeric_limits<long int>::max() << endl;std::cout << "Unsigned Long Int Min " << std::numeric_limits<unsigned  long int>::min() <<endl;std::cout << "Unsigned Long Int Max " << std::numeric_limits<unsigned  long int>::max() << endl;return 0;
}

此示例使用了 sizeof() 操作符获取不同数据类型的大小,并使用 std::numeric_limits 获取不同类型的最小值和最大值。

此外,代码中还介绍了 typedef 声明和枚举类型的使用方法。 typedef 可以用来创建新的类型名称,而枚举类型可用于定义一组常量,并可以为这些常量指定特定的值。

2、 typedef 声明

以使用 typedef 为现有类型创建一个新的名称。以下是使用 typedef 定义新类型的简单语法 -

typedef type newname;

例如,以下代码告诉编译器 feetint 的另一个名称 -

typedef int feet;

现在,以下声明是完全合法的,它创建了一个名为 distance 的整数变量 -

feet distance;

实践代码:

#include <iostream>
using namespace std;typedef int feet;int main() {feet distance = 5;cout << "Distance: " << distance << " feet" << endl;return 0;
}

上面的示例中,typedef int feet;feet 定义为 int 的别名。然后在 main() 函数中,使用 feet 类型创建了一个整数变量 distance 并赋值为 5。最后打印出了距离的值。

3、枚举类型

枚举类型声明了一个可选的类型名称和一组零个或多个可用作该类型值的标识符。每个枚举器都是一个其类型为枚举的常量。

创建枚举需要使用关键字 enum。枚举类型的一般形式是 

enum enum-name { name 列表 } 变量列表;

在这里,enum-name 是枚举的类型名称。名称列表是逗号分隔的。

例如,以下代码定义了一个名为 color 的颜色枚举和类型为 color 的变量 c。最后,将 c 赋值为 "blue"。

enum color { red, green, blue } c; c = blue;

默认情况下,第一个名称的值为 0,第二个名称的值为 1,第三个名称的值为 2,依此类推。但是您可以通过添加一个初始化器为名称指定特定的值。例如,在以下枚举中,green 将具有值 5。

enum color { red, green = 5, blue };

在这里,blue 将具有值 6,因为每个名称都比前一个名称大 1。

实践代码:

#include <iostream>
using namespace std;enum Color { red, green = 5, blue };int main() {Color c = blue;cout << "Value of red: " << red << endl;cout << "Value of green: " << green << endl;cout << "Value of blue: " << blue << endl;cout << "Value of c: " << c << endl;return 0;
}

 在上述示例中,enum Color { red, green = 5, blue }; 定义了一个名为 Color 的枚举类型。red 的默认值为 0,green 被赋值为 5,blue 没有赋值。在 main() 函数中,创建了一个 Color 类型的变量 c,并赋值为 blue。最后打印了三种颜色的值以及 c 的值。

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

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

相关文章

Kubernetes 安全最佳实践:保护您的秘密

Kubernetes 是一个可用于微服务的开源容器编排平台。当我们想要部署容器化应用程序、自动化管理和扩展应用程序时&#xff0c;Kubernetes 非常有用。 在容器中运行单个微服务而不是在同一虚拟机中运行多个进程几乎总是更安全。每当我们在 Kubernetes 中启动任何 pod 时&#x…

键盘敲入一个字母,操作系统发生了什么?

一、设备控制器 我们的电脑设备可以接非常多的输入输出设备&#xff0c;比如鼠标键盘网卡硬盘打印机等&#xff0c;每个设备的用法和功能都不相同&#xff0c;那操作系统是如何把这些输入输出设备统一管理的呢&#xff1f; 为了屏蔽设备之间的差异&#xff0c;每个设备都有一…

Zookeeper从零入门笔记

Zookeeper从零入门笔记 一、入门1. 概述2. 特点3. 数据结构4. 应用场景 二、本地1.安装2. 参数解读 三、集群操作3.1.1 集群安装3.2 选举机制1. 第一次启动2. 非第一次启动 3.3 ZK集群启动停止脚本3.4 客户端命令行操作3.2.1 命令行语法3.2.2 节点类型&#xff08;持久/短暂/有…

六:Day01_Spring Boot01

一、Spring Boot简介 1. 概念简介 Spring Boot是Spring公司的一个顶级项目&#xff0c;和Spring Framework是一个级别的。 Spring Boot实际上是利用Spring Framework 4 自动配置特性完成。编写项目时不需要编写xml文件。 2. 启动器介绍 Spring Boot的启动器实际上就是一个依赖…

热部署怎么部署

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言操作流程&#xff1a;在这里插入图片描述 ![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/a832d83c091742eda9d9325931a89df4.png) 这里的跟上面的…

WPF实战项目十九(客户端):修改RestSharp的引用

修改HttpRestClient&#xff0c;更新RestSharp到110.2.0&#xff0c;因为106版本和110版本的代码不一样&#xff0c;所以需要修改下代码 using Newtonsoft.Json; using RestSharp; using System; using System.Threading.Tasks; using WPFProjectShared;namespace WPFProject.S…

算法通关村第十八关青铜挑战——透析回溯的模板

大家好&#xff0c;我是怒码少年小码。 回溯是最重要的算法思想之一&#xff0c;主要解决一些暴力枚举也搞不定的问题&#xff08;组合、子集、分割、排列、棋盘等等&#xff09;。性能并不高&#xff0c;但是哪些暴力枚举都无法ko的问题能解出来就可以了&#x1f923;。 这一…

BUUCTF [GXYCTF2019]BabySQli 1 详解!(MD5与SQL之间的碰撞)

题目环境burp抓包 随便输入值 repeater放包 在注释那里发现某种编码 MMZFM422K5HDASKDN5TVU3SKOZRFGQRRMMZFM6KJJBSG6WSYJJWESSCWPJNFQSTVLFLTC3CJIQYGOSTZKJ2VSVZRNRFHOPJ5 看着像是base编码格式 通过测试发现是套加密&#xff08;二次加密&#xff09; 首先使用base32对此编码…

项目11:豆瓣首页-页脚 完结撒花!

这次我们就来制作豆瓣首页的最后一部分页脚。 同样&#xff0c;页脚也在container中&#xff0c;页脚分为左区域和右区域&#xff0c;左区域里是多个p元素与a元素结合完成的&#xff0c;还要插入一些图片&#xff0c;右区域里里有几个横向菜单&#xff0c;以及一张图片。 左右…

近期知识点

aop (1) 要求利用AOP记录用户操作日志。内容包含以下信息&#xff1a;ip地址、用户名、请求的地址&#xff0c;请求的时间 &#xff08; 4 分&#xff09; &#xff08;2&#xff09;要求利用AOP记录用户操作日志&#xff0c;日志记录到文本文件。内容包含以下信息&#xff…

在Spring Boot中使用JavaMailSender发送邮件

用了这么久的Spring Boot&#xff0c;我们对Spring Boot的了解应该也逐步进入正轨了&#xff0c;这篇文章讲的案例也在我们的实际开发中算是比较实用的了&#xff0c;毕竟我们完成注册功能和对用户群发消息&#xff0c;都可以采用到邮箱发送功能&#xff0c;往下看&#xff0c;…

寿险公司通过开源治理保障数字创新,安全打通高质量服务新通道

某寿险公司致力于为消费者提供人性化的产品和服务&#xff0c;在中国保险市场中始终保持前列。该寿险公司以挖掘和满足客户需求为出发点&#xff0c;从产品开发、渠道销售、运营流程和售后服务等各环节&#xff0c;借助数字化工具&#xff0c;不断地努力探索并提升服务品质。 精…

C++ :运算符重载

运算符重载&#xff1a; 运算符重载概念&#xff1a;对已有的运算符重新进行定义&#xff0c;赋予其另一种功能&#xff0c;以适应不同的数据类型 运算符的重载实际是一种特殊的函数重载&#xff0c;必须定义一个函数&#xff0c;并告诉C编译器&#xff0c;当遇到该重载的运算符…

IDEA中的Postman!

Postman是大家最常用的API调试工具&#xff0c;那么有没有一种方法可以不用手动写入接口到Postman&#xff0c;即可进行接口调试操作&#xff1f;今天给大家推荐一款IDEA插件&#xff1a;Apipost Helper&#xff0c;写完代码就可以调试接口并一键生成接口文档&#xff01;而且还…

SAP 如何检查已安装的SAP UI5 版本

第一个方法是直接从FLP中查看 但是部分高版本的FLP中没有这个about&#xff0c; 那么在当前界面可以使用&#xff1a;CTRL ALT SHIFT S 查看当前版本 根据此版本&#xff0c;去进行你的UI5的开发吧

观察者模式

1.观察者模式是什么呢&#xff1f; 观察者模式&#xff08;有时又被称为发布-订阅Subscribe>模式、模型-视图View>模式、源-收听者Listener>模式或从属者模式&#xff09;是软件设计模式的一种。在此种模式中&#xff0c;一个目标物件管理所有相依于它的观察者物件&am…

2分图匹配算法

定义 节点u直接无边&#xff0c;v之间无边&#xff0c;边只存在uv之间。判断方法&#xff1a;BFS染色法&#xff0c;全部染色后&#xff0c;相邻边不同色 无权二部图中的最大匹配 最大匹配即每一个都匹配上min&#xff08;u&#xff0c; v&#xff09;。贪心算法可能导致&…

【Unity】Blender场景导入

素材 下载场景&#xff1a;https://www.aplaybox.com/details/model/keDSIks72Qh3 blender文件导出为.fbx文件&#xff0c;路径选择复制&#xff08;做的过程太乱了不知道有没有影响&#xff09;&#xff0c;物理类型选择网格&#xff0c;勾选应用变换 blender下的物体长度是u…

SS8813T 打印机驱动芯片

SS8813为打印机和其它电机一体化应用提供一种双通道集成电机驱动方案。SS8813有两路H桥驱动&#xff0c;每个H桥可提供最大峰值电流2.5A和均方根电流1.75A(在24V和Ta 25C适当散热条件下)&#xff0c;可驱动两个刷式直流电机&#xff0c;或者一个双极步进电机&#xff0c;或者螺…

Xilinx FPGA——ISE的UCF时序约束

时序约束是我们对FPGA设计的要求和期望&#xff0c;例如&#xff0c;我们希望FPGA设计可以工作在多快的时钟频率下等等。 设计是要求系统中的每一个时钟都进行时序约束。 一、分组约束语法&#xff08;NET、PIN、INST&#xff09; TNM是最基本的分组约束语法&#xff0c;其语法…