C++学习心得05:数据类型

目录

sizeof函数

一、基本数据类型

1.整型

        ①即整数类型

        ②分类

        ③整型类别

         ④如何算长度?

2.单浮点型

          ①单精度:使用关键字float,在内存中占用4个字节

          ②声明一个单精度浮点数

          ③算出对应的十进制数(32bit)

3.双浮点型

          ①双精度:使用关键字double,内存中占8个字节

          ②声明一个双浮点数:double d = 5.32

          ③探讨双精度的存储方式(64bit)

4.字符型

          ①字符类型

          ②定义一个字符

          ③注意

          ④屏幕输入字符类型

5.宽字符型

          ①宽字符型

         ②字符与宽字符的区别

         ③使用:wchar_t s = 'w';

6.布尔型

         ①bool类型

        ②bool落地场景

二、派生数据类型

1.指针类型

2.枚举类型

3.数组类型

4.结构体类型

5.共同体类型

6.类类型


sizeof函数

       此函数可以输出数据类型所占字节数 cout<<sizeof(int) 

       注意: 由于它们的内存大小是和系统相关的,所以在不同的系统下取值可能不同。

一、基本数据类型

1.整型

        ①即整数类型

        ②分类

               按符号分可分为有符号和无符号

               按长度分可分为普通整型、短整型、长整型

        ③整型类别

类型

名称

字节数

范围

int

有符号整型

4 个字节

-2147483648 到 2147483647

unsigned int

无符号整型

4 个字节

0 到 4294967295

short int

有符号短整型

2 个字节

-32768 到 32767

unsigned short int

无符号短整型

2 个字节

0 到 65,535

long int

有符号长整型

 4 个字节

-2147483648 到 2147483647

unsigned long int

无符号长整型

 4 个字节

0 到 4294967295

         ④如何算长度?

                比如int    4个字节*8bit = 32bit

                也即是在内存中占32位

                带符号位置 在二进制中,0有两种表方法。

                +0的原码为0000 0000 0000 0000 0000 0000 0000 0000,

                 -0的原码为1000 0000 0000 0000 0000 0000 0000 0000,

                因为0只需要一个,所以把-0拿来当做一个最小的数-2147483648。 2147483647的原码           为0111 1111 1111 1111 1111 1111 1111 1111

               2的31次方-1

2.单浮点型

          ①单精度:使用关键字float,在内存中占用4个字节

          ②声明一个单精度浮点数

               float x = 2.59f

               关键字float,后面要添加f

               注意:一定要在后面添加f否则默认是双精度

          ③算出对应的十进制数(32bit)

              01000001001000100000000000000000

              第一步:符号位为0,表示是正数;  

              第二步:指数位为10000010,换算成十进制为130,所以指数为130-127=3;

              第三步:尾数位为01000100000000000000000,换算成十进制为 (1+1/4+1/64); #尾数部分都要+1 ;

              十进制数值为:2^3*(1+1/4+1/64)=8+2+1/8=10.125

3.双浮点型

          ①双精度:使用关键字double,内存中占8个字节

          ②声明一个双浮点数:double d = 5.32

          ③探讨双精度的存储方式(64bit)

             1bit  符号位(Sign) : 0代表正,1代表为负;

             11bit  指数位(Exponent):用于存储科学计数法中的指数数据,并且采用移位存储;

             52bit  尾数部分(Mantissa):尾数部分。

4.字符型

          ①字符类型

              采用关键字char,字符数据使用单引号包围 占用一个字节 取值范围-128~127。

          ②定义一个字符

              char ch1 = ‘a’; char ch2 = ‘b’;

          ③注意

              字符数据在内存中存储的是字符的ASCII码,即一个无符号整数 所以可以直接把整数赋值 给字符变量 比如: char c1 = 'a'; char c2 = 97; 两个的效果一模一样

               sizeof(char)    //1

          ④屏幕输入字符类型

               char ch; cin >> ch; cout<<ch;

5.宽字符型

          ①宽字符型

              关键字wchar_t,占用2个字节一种扩展的存储方式。

              wchar_t类型主要用在国际化程序的实现中

         ②字符与宽字符的区别

              char是8位字符类型,最多只能包含256种字符,许多外文字符集所含的字符数目超过256个,char型无法表示。

              wchar_t数据类型一般为16位或32位,但不同的C或C++库有不同的规定,如GNU Libc规定wchar_t为32位,总之,wchar_t所能表示的字符数远超char型。

         ③使用:wchar_t s = 'w';

6.布尔型

         ①bool类型

             bool类型用来表示真假,也即是0、1。它一般占用 1 个字节长度。

             bool 类型只有两个取值,true 和 false:true 表示“真”,false 表示“假”。

            在程序中bool被作为整数对待 其中false为0 ,true为1

            0 转换成 false 所有其他的值都被转换成 true,只要所赋值不为0都会得到1

            我们可以直接给bool类型赋值为整数是合法的,反之将整型赋值给bool也是合法的

        ②bool落地场景

           Bool经常被用作条件判断,如果条件为真,则。。。 如果条件为假,则。。。

           此函数可以输出数据类型所占字节数 cout<<sizeof(bool)    //1

二、派生数据类型

1.指针类型

       通常所说的指针就是指针变量,它是一个专门存储地址的变量,

       变量的指针主要指变量在内存中的地址。

              Int a = 10;

              Int *p;

              *p = &a;

2.枚举类型

       枚举就是取有限个值,确定列举出来的几个值,比如周一到周六

              enum Week{Monday,Tuesday,…..Sunday}

3.数组类型

       将同一类型的数据按照一定的形式有序的组织起来,这些有序数据的集合就称之为数组

4.结构体类型

       由各种数据类型组合起来的数据集合

              struct man{

              int age; 

              char name[20]; 

              short sex; }

5.共同体类型

       将不同数据项组成一个整体 和结构体有点类似,但是在内存中占用首地址相同的一段存储单元

              union myClass{

              int a;

             char b;

             float c; }

      注意:每个瞬间只能存储一种数据类型

6.类类型

      万物皆是类,皆是对象

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

狐尼克的小项目

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值