C++基础Ⅱ变量

news2024/11/18 1:25:24

目录儿

  • 4 变量
    • 4.1 原始数据类型
      • 字符 char
      • 整型 short
      • 整型 int
      • 整型 long
      • 整型 long long
      • 单精度浮点型 float
      • 双精度浮点型 double
      • 布尔型 bool
    • 4.2 sizeof 关键字
  • 5 指针和引用

4 变量

4.1 原始数据类型

原始数据类型是构建C++程序的最基础数据类型
所有数据都是基于这些原始数据类型来存储的
后面各种第三库的包装类型、或是自定义的数据类型,其底层都是这些原始数据类型。

字符 char

char 类型用于(在一定范围内)存储整型数据(表面上是存储字符)
char 类型数据一般占据 1 byte / 8 bit,具体大小由编译器决定

char variable_name = 65;
char variable_name = 'A';

如果不作显示声明,char类型数据默认是有符号的:signed
当然,我们可以显示地把一个char数据声明为无符号整型:unsigned
但是一般不会这么做,因为没有意义
我们定义char类型基本都是用于存储字符,字符对应的编码都是正的整型数据

unsigned char variable_name; // 不推荐

一般而言char类型是用来表示存储的数据是一个字符数据,所以cout打印char类型数据的时候会把存储的整型根据编码表转成对应的字符进行输出。

整型 short

short 类型数据一般占据 2 byte / 16 bit,具体大小由编译器决定

short variable_name = 65;
short variable_name = 'A';

如果不作显示声明,short类型数据默认是有符号的:signed
当然,我们可以显示地把一个short数据声明为无符号整型:unsigned

unsigned short variable_name;

整型 int

int 类型用于(在一定范围内)存储整型数据
int 类型数据一般占据 4 byte / 32bit,具体大小由编译器决定

int variable_name = 65;
int variable_name = 'A';

如果不作显示声明,int类型数据默认是有符号的:signed
当然,我们可以显示地把一个int数据声明为无符号整型:unsigned

unsigned int variable_name;

整型 long

long 类型用于(在一定范围内)存储整型数据
long 类型数据一般占据 4 byte / 32 bit,具体大小由编译器决定

long variable_name = 65;
long variable_name = 'A';

如果不作显示声明,long类型数据默认是有符号的:signed
当然,我们可以显示地把一个long数据声明为无符号整型:unsigned

unsigned long variable_name;

整型 long long

long long 类型用于(在一定范围内)存储整型数据
long long 类型数据一般占据 8 byte / 64 bit,具体大小由编译器决定

long long variable_name = 65;
long long variable_name = 'A';

如果不作显示声明,long long类型数据默认是有符号的:signed
当然,我们可以显示地把一个long long数据声明为无符号整型:unsigned

unsigned long long variable_name;

单精度浮点型 float

float 类型用于(在一定范围内)存储浮点数据
float 类型数据一般占据 4 byte / 32 bit,具体大小由编译器决定

float variable_name = 1.2f;

float类型的变量赋值时需要加上一个f/F,否则编译器会把这个浮点数当成double处理:
在这里插入图片描述
加了f/F就向编译器说明这是个float类型的数据:
在这里插入图片描述

双精度浮点型 double

double 类型用于(在一定范围内)存储浮点数据
double 类型数据一般占据 8 byte / 64 bit,具体大小由编译器决定

double variable_name = 1.2;

布尔型 bool

bool 类型用于代表ture/false
bool 类型数据一般占据 1 byte / 8 bit

bool variable_name = true;b

bool类型的数据打印输出时以0代表false
以其他非0数字,通常是1代表true,具体取决编译器

其实bool类型的数据只占用了1bit,但为什么它确需要占据1byte这么多呢?
原因是内存寻址的时候是以byte为最小单元的,因此最小的数据类型只能小到1byte,哪怕它实际用到的内存大小比1byte小!

4.2 sizeof 关键字

sizeof关键字可以获取某个变量,或者具体的数据类型所占据的字节数

int main() {
	float flo_var = 1.2f;
	int int_var = 5654;

	std::cout << sizeof(flo_var) << std::endl; // 4
	std::cout << sizeof int_var << std::endl;  // 4
	std::cout << sizeof(double) << std::endl;  // 8
	std::cin.get();
}

不同版本的编译器对加不加()要求可能不同,但是规范而言最好加上sizeof(xxx)

5 指针和引用

有了原始数据类型之后,我们可以把这些原始数据类型转换成指针或引用

比如现在有一个bool类型的变量

bool bool_var = false;

转成成指针

bool* bool_var = false;

转换成引用

bool& bool_var = false;

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

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

相关文章

度加剪辑App的MMKV应用优化实践

作者 | 我爱吃海米 导读 移动端开发中&#xff0c;IO密集问题在很多时候没有得到充足的重视和解决&#xff0c;贸然的把IO导致的卡顿放到异步线程&#xff0c;可能会导致真正的问题被掩盖&#xff0c;前人挖坑后人踩。其实首先要想的是&#xff0c;数据存储方式是否合理&#x…

HQL解决连续三天登陆问题

1.背景 统计连续登录天数超过3天的用户&#xff0c;输出信息包括&#xff1a;用户id&#xff0c;登录天数&#xff0c;起始时间&#xff0c;结束时间&#xff1b; 2.准备数据 -- 建表 create table if not exists user_login_3days(user_id STRING,login_date date );--插入…

查询数据库字段信息 mysql

属性&#xff1a; SELECT TABLE_SCHEMA AS 库名, TABLE_NAME AS 表名, COLUMN_NAME AS 字段名, ORDINAL_POSITION AS 字段顺序, COLUMN_DEFAULT AS 默认值, IS_NULLABLE AS 是否为空, DATA_TYPE …

怎么把pdf文件变小?值得一看的文件压缩方法

现在很多平台对于上传的文件大小是有限制的&#xff0c;如果压缩成压缩包的形式发送&#xff0c;虽然可以减小一点体积&#xff0c;但对方无法直接打开预览文件内的内容&#xff0c;很不方便&#xff0c;怎么才能直接将PDF文件的体积压缩变小呢&#xff1f;下面就给大家汇总了几…

GB2312转UTF-8部分中文乱码

现象 最近写了个txt导入&#xff0c;客户反馈有时候导入的数据&#xff0c;会出现个别中文乱码的现象&#xff0c;但是我之前已经做过编码转换处理了&#xff0c;统一转成了UTF-8。 比如“鞠婧祎”,导入进来是这样&#xff1a; 排查思路 首先看了一下这个文本的编码格式&am…

Window Server 与 Windows 系统开关机日志查看方法

目录 Windows/Windows Server 查看日志Windows 系统常用的事件 ID 环境&#xff1a;Windows Server 2019 &#xff08;也适用于 Windows 其他系统&#xff09;。 不同版本的 Windows 图标可能有所不同&#xff0c;但是服务器级 Windows Server 与普通桌面级 Windows 还会有些操…

低代码平台是为何而生?低代码平台发展前景又如何呢?

低代码平台是为何而生&#xff1f;低代码平台发展前景又如何呢&#xff1f;低代码平台在近年来已经吸引了越来越多的关注&#xff0c;被认为是一种能够加速应用程序开发的解决方案。低代码平台虽然还存在着各种各样的问题&#xff0c;但是低代码平台的前景依然十分广阔。 下面…

放苹果(巧用递归)--夏令营

题目 tips&#xff1a; 1.写递归要有递归边界条件&#xff0c;递归过程就是向边界不断靠近 这里注意&#xff1a;虽然题目给的m,n输入数据范围是>1的&#xff0c;但不代表边界就是这个&#xff1b; 首先&#xff0c;n0肯定是不存在的&#xff0c;所以n的边界肯定是1&#…

粒子目标_雨滴

nParticleShape1.goalU parentU; nParticleShape1.goalV parentV; 使用纹理发射nParticle nParticleShape1.goalV .01; nParticleShape1.goalV .01*-1; goalV if(nParticleShape1.goalV <.045) { nParticleShape1.lifespanPP -1; } 粒子轨迹 nParticleShape1.goalU …

【腾讯云 TDSQL-C Serverless 产品测评】“橡皮筋“一样的数据库『MySQL高压篇』

【腾讯云 TDSQL-C Serverless 产品测评】"橡皮筋"一样的数据库 活动介绍服务一览何为TDSQL &#xff1f;Serverless 似曾相识&#xff1f; 降本增效&#xff0c;不再口号&#xff1f;动手环节 --- "压力"山大实验前瞻稍作简介资源扩缩范围&#xff08;CCU&…

2023年最新 Github Pages 使用手册

参考&#xff1a;GitHub Pages 快速入门 1、什么是 Github Pages GitHub Pages 是一项静态站点托管服务&#xff0c;它直接从 GitHub 上的仓库获取 HTML、CSS 和 JavaScript 文件&#xff0c;&#xff08;可选&#xff09;通过构建过程运行文件&#xff0c;然后发布网站。 可…

执行jmeter端口不够用报错(Address not available)

执行jmeter端口不够用报错(Address not available) linux解决方案 // 增加本地端口范围 echo 1024 65000 > /proc/sys/net/ipv4/ip_local_port_range// 启用快速回收TIME_WAIT套接字 sudo sysctl -w net.ipv4.tcp_tw_recycle 1// 启用套接字的重用 sudo sysctl -w net.ipv4.…

CRM系统如何定制?定制哪些功能?

虽然市场上有许多成熟的CRM系统供企业选择&#xff0c;但很多时候&#xff0c;现有的标准化CRM系统无法满足企业的特殊需求。这时就需要进行CRM系统定制。那么&#xff0c;什么时候需要CRM系统定制&#xff0c;CRM系统定制怎么弄&#xff1f;下面我们就说一说。 什么时候需要C…

【教程】超人RAR解密助手

通常压缩包设置了密码&#xff0c;当我们对压缩包进行操作的的时候都需要输入密码&#xff0c;比如解压文件、修改密码、删除密码等情况&#xff0c;但是忘记了压缩包密码之后都没有办法操作了。这种情况下我们需要先找回密码才能继续操作。 想要找回密码&#xff0c;我们可以…

根据源码,模拟实现 RabbitMQ - 网络通讯设计,实现客户端Connection、Channel(完结)

目录 一、客户端代码实现 1.1、需求分析 1.2、具体实现 1&#xff09;实现 ConnectionFactory 2&#xff09;实现 Connection 3&#xff09;实现 Channel 二、编写 Demo 2.1、实例 2.1、实例演示 一、客户端代码实现 1.1、需求分析 RabbitMQ 的客户端设定&#xff…

Jetpack Compose UI架构

Jetpack Compose UI架构 引言 Jetpack Compose是我职业生涯中最激动人心的事。它改变了我工作和问题思考的方式&#xff0c;引入了易用且灵活的工具&#xff0c;几乎可轻松实现各种功能。 早期在生产项目中尝试了Jetpack Compose后&#xff0c;我迅速着迷。尽管我已有使用Co…

margnalizeHuberJacibian测试Demo

文章目录 margnalize公式及原理&#xff1a;测试代码及运行结果解说代码编译命令&#xff1a;运行结果&#xff1a; Huber原理代码 Jacibian测试代码代码解释代码编译命令运行结果 margnalize 公式及原理&#xff1a; 测试代码及运行结果 解说 /***************************…

python 包管理工具poetry和异步sanic web框架实践+配置镜像源

上传源码到服务器&#xff0c;然后执行poetry install安装依赖。 多进程启动脚本run.sh内容&#xff1a; #!/bin/bash #应用入口文件 APP_NAME/www/wwwroot/python-sanic/main.py #进程关键字 PROCESS_KEYWORDpython-sanic #使用说明&#xff0c;用来提示输入参数 usage(){…

潮玩数藏App:数字时代下的潮流收藏新体验

随着数字时代的到来&#xff0c;潮流收藏成为了一种新型的文化现象&#xff0c;并在年轻人中迅速流行起来。为了满足这一需求&#xff0c;潮玩数藏App应运而生&#xff0c;为用户提供了一个专业、便捷的潮流收藏平台。本文将深入探讨潮玩数藏App的专业性、思考深度以及逻辑性&a…

“爱在七夕,情暖人间”店口志愿者开展敬老助残服务活动

在这个充满爱心的世界里&#xff0c;让志愿服务燃烧我们的人生。 8月22日七夕节&#xff0c;诸暨市爱心助残协会联合牛皋社区党支部、老年协会、店口镇义工协会、店口镇残疾人之家、诸暨凯客蛋糕、诸暨中康医院、杨琼发艺工作室、国芬理发店等爱心团队在店口残疾人之家开展了“…