C++基础Ⅱ变量

news/2024/11/4 22:29:05 标签: c++, 数据类型, float, 指针, 引用, int

目录儿

  • 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_33">整型 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_69">单精度浮点型 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.niftyadmin.cn/n/4966063.html

相关文章

offer 报表数据分析示例

数据信息&#xff1a; Unnamed: 0 offerid sourceName affiliateId clickCount installs 0 0 21059 Clickorbits 10110006 705895 3785 1 1 1818 Mobavenue 10110080 9209 3124 2 2…

千呼万唤!字节首个大模型产品“豆包”面世公测,无需邀请码!

相较其他大厂&#xff0c;字节跳动在大模型领域的进展一直比较神秘&#xff0c;最近相关项目终于露出了冰山一角。 字节跳动旗下首个AI对话产品“豆包”目前已经上线&#xff0c;面向公众开始测试&#xff0c;无需邀请码&#xff0c;直接可以在官网&#xff08;https://www.do…

【Opencv】三维重建之cv::recoverPose()函数(1)

官网链接 从估计的本质矩阵和两幅图像中的对应点恢复相机之间的旋转和平移&#xff0c;使用光束法则进行检验。返回通过检验的内点数目。 #include <opencv2/calib3d.hpp>int cv::recoverPose ( InputArray E, InputArray points1, InputArray points2, InputArray …

【MySQL】MySQL中MyIsAM和InnoDB存储引擎的区别(面试必考!!)

目录 MyIsAM和InnoDB的区别 区别主要在于&#xff1a; 事务支持&#xff1a; 并发控制: 外键支持&#xff1a; 数据缓存和索引&#xff1a; 这么说可能不太好理解&#xff0c;让我们展开聊聊 数据一致性和恢复&#xff1a; InnoDB肯定是比myIsam的功能强大的&#xff0…

❤ windows 安装后台java开发环境JDK 、MySQL 、Redis

❤ windows 安装后台java开发环境 1、windows 安装 JDK. 下载地址&#xff1a; http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html 1、下载安装 官网点击下载安装 网盘 jdk安装包 链接&#xff1a;https://pan.baidu.com/s/1sdxA6B…

双核和双路服务器的区别

服务器术语里&#xff0c;大家经常会听到1U、2U&#xff0c;单路、双路&#xff0c;机架式、塔式及刀片式等常用名词。其中&#xff0c;机架式、塔式及刀片式是 指服务器的外形&#xff0c;U是指服务器的高度&#xff0c;路是指服务器的处理器数量。 部分朋友会问&#xff0c;我…

免费的png打包plist工具CppTextu,一款把若干资源图片拼接为一张大图的免费工具

经常做游戏打包贴图的都知道&#xff0c;要把图片打包为一张或多张大图&#xff0c;要使用打包工具TexturePacker。 TexturePacker官方版可以直接导入PSD、SWF、PNG、BMP等常见的图片格式&#xff0c;主要用于网页、游戏和动画的制作&#xff0c;它可以将多个小图片汇聚成一个…

Android 市场的变化,影响多少开发被迫……

前言 Android 开发在2010年时&#xff0c;广受市场需要&#xff0c;那时候在一线城市很容易拿到10K的起步薪资&#xff0c;Android开发的市场空缺大概有30万左右。那时引起了大量java开发者开始学习Android开发&#xff0c;招聘市场面试要求上只要有一定java语法基础&#xff…