C++中数据类型的学习

目录

一、整形

二、sizeof关键字

三、实型(浮点型)

四、字符型

五、转义字符

六、字符串型

七、布尔类型bool

八、数据的输入

                                      数据类型

C++规定在创建一个变量或者常量时,必须要指定出相应的数据类型,否则无法给变量分配内存。
数据类型存在的意义:给变量分配合适的内存空间。

一、整形

作用:整型变量表示的是整数类型的数据
C++中能够表示整型的类型有以下几种方式,区别在于所占内存空间不同:

数据类型占用空间取值范围
short(短整型)2字节(-2^15 ~ 2^15-1)
int(整形)4字节(-2 ^ 31~2 ^ 31 - 1)
long(长整型)Windows为4字节,Linux为4字节(32位),8字节(64位)(-2 ^ 31 ~2 ^ 31 - 1)
long long(长长整形)8字节(-2 ^ 63 ~2 ^ 63 - 1)
int main()
{//1.短整型(-32768 ~ 32767)short num1 = 10;//2.整形int num2 = 10;//3.长整型long num3 = 10;//4.长长整形long long num4 = 10;cout << "num1 = " << num1 << endl;cout << "num2 = " << num2 << endl;cout << "num3 = " << num3 << endl;cout << "num4 = " << num4 << endl;system("pause");return 0;
}

二、sizeof关键字

作用:利用sizeof关键字可以统计数据类型所占内存大小;
语法:sizeof(数据类型 / 变量);
整形结论:short<int <= long <= long long;

int main()
{short num1 = 10;cout << "short占用内存空间为:" << sizeof(num1) << endl;int num2 = 10;cout << "int占用内存空间为:" << sizeof(num2) << endl;long num3 = 10;cout << "long占用内存空间为:" << sizeof(num3) << endl;long long num4 = 10;cout << "long long占用内存空间为:" << sizeof(num4) << endl;system("pause");return 0;
}

三、实型(浮点型)

作用:用于表示小数
浮点型变量分为两种 :

  •    单精度float
  •   双精度double

两者的区别在于表示的有效数字范围不同:

数据类型占用空间有效数字范围
float4字节7位有效数字
double8字节 15~16位有效数字
int main()
{//1.单精度floatfloat f1 = 3.14f;   //+f默认是float类型,否则编辑器默认为double  cout << "f1 = " << f1 << endl;//2.双精度doubledouble d1 = 3.14;cout << "d1 = " << d1 << endl;//科学计数法float f2 = 3e2;cout << "f2 = " << f2 << endl;float f3 = 3e-2;cout << "f3 = " << f3 << endl;system("pause");return 0;
}

四、字符型

作用:字符型变量用于显示单个字符。
语法:char ch = 'a';
注意:

  •    显示字符型变量时,用单引号将字符括起来,不要用双引号
  •    单引号内只能有一个字符,不可以是字符串

C和C++中字符型变量只占用1个字节。
字符型变量并不是把字符本身放到内存中存储,而是将对应的ASCII编码放入到存储单元。

int main()
{//1.字符型变量创建方式char ch = 'a';cout << "a = "<< ch << endl;//2、字符型变量所占内存大小cout << "char字符型变量所占内存:" << sizeof(char) << endl;//3、字符型变量常见错误//char ch2 = "b”;         //创建字符型变量时候,要用单引号//char ch2 = 'abcdef';    //创建字符型变量时候,单引号内只能有一个字符//4、字符型变量对应ASCII编码//a - 97//A - 65cout << (int)ch << endl;system("pause");return 0;
}

五、转义字符

作用:用于表示一些不能显示出来的ASCII字符。

转义字符含义ASCII码值(十进制)
\a警报007
\b退格(BS),将当前位置移到前一列008
\f换页(FF),将当前位置移到下页开头012
\n换行(LF),将当前位置移到下一行开头010
\r回车(CR),将当前位置移到本行开头013
\t水平制表(HT)(跳到下一个TAB位置)009
\v垂直制表(VT)011
\\代表一个反斜线字符"\"092
\'代表一个单引号(撇号)字符039
\''代表一个双引号字符034
\?代表一个问号063
\0数字0000
\ddd8进制转义字符,d范围0~73位8进制
\xhh16进制转义字符,h范围0~9,a~f,A~F3位16进制
int main()
{换行符 - \ncout << "hello\nword" << endl;system("pause");return 0;
}

六、字符串型

作用:用于表示一串字符

1.C风格字符串:char 变量名[] = 字符串值

int main()
{char str1[] = "hello word";cout << str1 << endl;system("pause");return 0;
}

2.C++风格字符串:string 变量名 = "字符串值"

#include <string>
int main()
{string str2 = "hello word";cout << str2 << endl;system("pause");return 0;
}

七、布尔类型bool

作用:布尔数据类型代表真或假的值。
bool类型只有两个值:

  •    true --真(本质是1)
  •    false - 假(本质是0)

bool类型占1个字节大小。

int main()
{//1.bool类型数据的创建bool flag = true;cout << flag << endl;flag = false;cout << flag << endl;//2.查看boo1类型所占内存空间cout << "bool类型所占内存空间: "<< sizeof(bool) << endl;system("pause");return 0;
}

八、数据的输入

作用:用于从键盘获取数据;
关键字: cin;
语法: cin >> 变量;

#include <string>
int main()
{//1.整形//int a = 0;//cout << "请给整形变量a赋值:" << endl;//cin >> a;//cout << "整形变量a = " << a << endl;//2、浮点型//float f = 3.14f; //cout << "请给浮点型变量f赋值: " << endl;//cin >>f;//cout << "浮点型变量f = "<< f << endl;//3、字符型//char ch = 'a';//cout << "请给字符型变量ch赋值:" << endl;//cin >> ch;//cout << "字符型变量ch = " << ch << endl;//4、字符串型string str = "hello word";cout << "请给字符串str赋值:" << endl;cin >> str;cout << "字符串str = " << str << endl;system("pause");return 0;
}

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

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

相关文章

Java设计模式之中介者模式(Mediator Pattern)

Java设计模式之中介者模式&#xff08;Mediator Pattern&#xff09; 引言 在软件开发中&#xff0c;设计模式是解决常见设计问题的一系列最佳实践。中介者模式&#xff08;Mediator Pattern&#xff09;是行为型设计模式之一&#xff0c;它的主要目的是减少对象之间的直接相…

kubeadm搭建生产环境高可用集群

前言 搞了好多天&#xff08;今天是20240819&#xff09;&#xff0c;中途遇到各种各样的问题&#xff0c;总算是可以用了 我这里用的vmware开了5台服务器做学习实践 K8S因为直接使用的 pkgs.k8s.io 仓库&#xff0c;所以直接拉取的最新release版&#xff08;v1.31&#xff09…

SIRA-PCR: Sim-to-Real Adaptation for 3D Point Cloud Registration 论文解读

目录 一、导言 二、 相关工作 1、三维点云配准工作 2、无监督域适应 三、SIRA-PCR 1、FlyingShape数据集 2、Sim-to-real自适应方法 3、配准 4、损失函数 一、导言 该论文来自于ICCV2023&#xff0c;论文提出了一种新的方法SIRA-PCR&#xff0c;通过利用合成数据Flying…

网易云音乐故障 2 小时,这次到底谁背锅?(今天记得领补偿)

大家好&#xff0c;我是程序员鱼皮&#xff0c;8 月 19 日下午&#xff0c;网易云音乐突发严重故障&#xff0c;并登顶微博热搜&#xff0c;跟黑神话悟空抢了热度。 根据用户的反馈&#xff0c;故障的具体表现为&#xff1a;用户无法登录、歌单加载失败、播放信息获取失败、无法…

了解数据库中常用存储引擎数据结构(2)

目录 深入了解B树及其变种 BTree BTree B*Tree BTree并发机制 B-Link Tree 深入了解B树及其变种 先把我们要解释的B树变种都列出来&#xff0c;B树的变种主要有B树、B*树、B-Link树、COW B树、惰性B树、Bw树等。 下面具体来分析这些变种的优势和发展趋势。 BTree 下图…

Taro+Vue 创建微信小程序

TaroVue 创建微信小程序 一、全局安装 tarojs/cli二、项目初始化三、现在去启动项目吧 一、全局安装 tarojs/cli npm install -g tarojs/cli //安装 npm info tarojs/cli //查看安装信息 如果正常显示版本说明成功了&#xff0c;就直接跳到第二步吧官网说&#xff1a;…

AI产品经理如何入门?零基础入门到精通,收藏这一篇就够了

现在做产品经理&#xff0c;真的挺累的。 现在产品越来越难做&#xff0c;晋升困难&#xff0c;工资迟迟不涨……公司裁员&#xff0c;产品经理首当其冲&#xff01;&#xff01; 做产品几年了&#xff0c;还没升职&#xff0c;就先到了“职业天花板”。 想凭工作几年积累的…

BFS解决单源最短路问题

目录 迷宫中离入口最近的出口 最小基因变化 单词接龙 为高尔夫比赛砍树 迷宫中离入口最近的出口 题目 思路 使用宽度优先遍历解决这道题&#xff0c;需要一个二维数组标记是否被遍历过&#xff0c;也需要一个队列辅助完成宽度优先遍历&#xff0c;类似于水波纹一样&#x…

JAVA基础:File类

目录 前言 file对象的创建 file的常用方法 前言 file类表示的是系统中的一个文件或者文件夹 file类和系统中的文件或者文件夹不需要是一一对应的&#xff0c;我们可以在file类中写你系统中不存在的文件或文件夹 file类中存储的实际上是文件或文件夹的抽象路径&#xff0c…

面试经典算法150题系列-最长公共前缀

最长公共前缀 编写一个函数来查找字符串数组中的最长公共前缀。 如果不存在公共前缀&#xff0c;返回空字符串 ""。 示例 1&#xff1a; 输入&#xff1a;strs ["flower","flow","flight"] 输出&#xff1a;"fl"示例 2&…

ShardingSphere、雪花算法、分布式id生成器CosID概述

ShardingSphere 用处&#xff1a;sharding是分片的意思&#xff0c;sphere是球&#xff08;生态的意思&#xff09;。用来做分库分表的生态的。一个订单表太大&#xff0c;查询会很慢&#xff0c;要分表&#xff0c;分为3个表&#xff0c;这样查询会快一点&#xff0c;所以有了…

软件测试 - 自动化测试(概念)(Java)(自动化测试分类、web自动化测试、驱动、selenium自动化测试工具的安装)

一、自动化的概念 ⾃动洒⽔机&#xff0c;主要通上⽔就可以⾃动化洒⽔并且可以⾃动的旋转。 ⾃动洗⼿液&#xff0c;免去了⼿动挤压可以⾃动感应出洗⼿液 超市⾃动闸⻔&#xff0c;不需要⼿动的开⻔关⻔ ⽣活中的⾃动化案例有效的减少了⼈⼒的消耗&#xff0c;同时也提⾼了⽣…

C语言程序设计(初识C语言后部分)

代码是一门艺术&#xff0c;键盘是我的画笔。 3.递归和迭代&#xff08;循环就是一种迭代&#xff0c;迭代不仅仅是循环&#xff09; 求n&#xff01; 递归方式&#xff1a; n!---> 1 (n1); n*(n-1)! (n>1) #include <stdio.h> //n!-->递归方式 int fac(in…

Kafka运行机制(一):Kafka集群启动,controller选举,生产消费流程

前置知识 Kafka基本概念https://blog.csdn.net/dxh9231028/article/details/141270920?spm1001.2014.3001.5501 1. Kafka集群启动 Kafka在启动集群中的各个broker时&#xff0c;broker会向controller注册自己&#xff0c;并且从controller节点同步集群元数据。 broker是Kaf…

C++入门——16C++11新特性

1.列表初始化 初始化列表时&#xff0c;可添加等号()&#xff0c;也可不添加。 struct Point {int _x;int _y; };int main() {int x1 1;int x2{ 2 };int array1[]{ 1, 2, 3, 4, 5 };int array2[5]{ 0 };Point p{ 1, 2 };// C11中列表初始化也可以适用于new表达式中int* pa …

SpringBoot文档之Profiles的阅读笔记

Reference Core Features Profiles 类似Maven的Profile特性&#xff0c;限定配置项取值的生效场景。 在代码中&#xff0c;对于使用注解Component、Configuration、ConfigurationProperties标记的类&#xff0c;可以增加Profile&#xff0c;限定前述类的生效场景。 类似如下样…

jstack结果提取特定线程池线程的堆栈

这里假设你已经知道如何定位java进程PID&#xff0c;以及如何执行jstack命令进行导出&#xff0c;下面仅提供相关命令&#xff0c;及示例 ps aux|grep java jstack 8229 > jstack_output.log v1版本 grep second jstack_output.log 如果此时我们想重点关注一下下面这个线程…

Spark大数据分析案例

目录 案例概述环境搭建1. Spark单机环境2. Spark集群环境 数据集数据预处理 Spark作业编写提交Spark作业 数据可视化可能遇到的问题及解决方法结论 案例概述 本案例将介绍如何在单机和集群环境下使用Apache Spark进行大数据分析&#xff0c;最终使用Python实现数据的可视化。我…

高性价比全屋智能家居解决方案,提升生活幸福感!

在快节奏的城市生活中&#xff0c;公司、住宅两点一线的上班族不在少数。近年来&#xff0c;随着物联网、大数据技术的不断发展与5G的广泛普及&#xff0c;生活品质的提升成为上班族新的关注焦点。忙碌的工作时间结束后&#xff0c;智慧家居系统打造便捷、安全、智能、舒适的居…

32-hashmap linkedmap treemap 的区别

‌HashMap‌、‌LinkedHashMap‌和‌TreeMap‌是Java中三种常用的Map实现&#xff0c;它们在数据结构、有序性、性能和线程安全性等方面有所不同。 ‌数据结构‌&#xff1a; ‌HashMap‌&#xff1a;基于哈希表数据结构实现&#xff0c;通过计算键的哈希值来确定存储位置。它不…