数据的存储 详解(上)

简介: 数据的存储 详解

1 .数据类型的介绍

  1.1类型的基本归类

基本的数据类型:

char       //字符数据类型(整形家族)
short      //短整型
int        //整型
long       //长整型
long long  //长长(更长的)整型 (c99)
float      //单精度浮点数
double     //双精度浮点数
    printf("%d\n", sizeof(char));     //1个字节    
    printf("%d\n", sizeof(short));      //2个字节    
    printf("%d\n", sizeof(int));        //4个字节  (32位机器或64位机器)早期为(16位机器)2个 字节   
    printf("%d\n", sizeof(long));       //4个字节     
    printf("%d\n", sizeof(long long));  //8个字节  
    printf("%d\n", sizeof(float));      //4个字节  
    printf("%d\n", sizeof(double));     //8个字节  

 这 是 一 些 扩 展 大 家 可 以 看 看

有没有字符串类型呢?

答案是  有的

字符串是字符的序列,基本就是一组单词,是Phthon中常用的数据类型,可以用单引号(' ')和双引号(" ")来定义 (创建)字符串。

//比如可以这样
str = "My name is 9527 ";
str1 = 'HELLO WORLD!';
str2 ="""because of you""";//对了也可以用三引号(""" """)和(''' ''')
------------------------------------------------------------
print("%s" % str); //输出为 My name is 9527
print("%s" % str1);//输出为 HELLO WORLD!
print("%s" % str2);//输出为 because of you


不同的数据类型内会导致存储时和访问时有不同的差异 比如:浮点型就是一个典例(后面会给大家讲到 嘿嘿)

做点小扩展(摘自 cppreference.com)

  • 浮点类型
  • 实际浮点类型:float , double ,long double
  • 十进制实数浮点类型:_Decimal32,_Decimal64,_Decimal128
(自 C23 起)
  • 复杂类型:float_Complex,double_Complex,long double_Complex
  • 虚数类型:float_Imaginary,double_Imaginary,long double_Imaginary

(自C99起)


可以简单了解一下 嘻嘻嘻

其次就是 布尔类型 (_Bool) 是C语言中专门用来表示 真 / 假 的一种类型(c++中也有哦)

c99标准才开始引入原因是因为 在早期 C语言都是用0表示假 非0为真 后期才开始有了这样

给大家演示一下:

   //c99才开始引入
#include <stdio.h>
#include <stdbool.h>//这里需要引用头文件
 int main()
{
     _Bool flag = true;//true为真false为假
     if (flag)
  {
    printf("Oh yeah! , you do it!");
  }
   return 0;
}


_Bool 没有什么好神奇的 本质是对 int 的一种重命名 你看这就很好的说明了 并且平常我们看到的代码也很少有用到_Bool类型的 即使 c99 中引入了 引用得不是很广泛有些编译器甚至不支持 当然你想用也是可以的 哈哈哈哈

   #define bool  _Bool
   #define false 0 //类似于int false = 0;
   #define true  1//类似于int true = 0;


                  “ 家族  ”类型

1. 接下来是我们的整型家族

    char :
    unsigned char
    signed char
    short :
    unsigned short  //short等价于signed short
    signed short
    int:
    unsigned int    //int等价于signed int
    signed int
    long:
      unsigned long   //long等价于signed long
      signed long

char类型 之所以归于整型家族中是因为其字符有与其相对应的 ASCLL码值

对于 char类型 是不一样的 char 到底等不等同于 signed char 是取决于编译器的不同的

但是一般来讲是 等同

需要注意 有符号 无符号 在打印是也要求的

    //注意:%d 是按照有符号数来打印的
    //%u 才是按照无符号来打印的
    unsigned int num = -10;
  printf("%d", num);       //打印为 -10  
    int num1 = -10;
  printf("%u", num1);      //打印出来为4294967286


目录
相关文章
|
11天前
|
存储 小程序
数据的存储
数据的存储
|
6月前
|
存储
【数据的存储】
【数据的存储】
47 0
|
6月前
|
存储
数据的存储(下)
数据的存储(下)
|
6月前
|
存储 小程序 编译器
数据的存储(上)
数据的存储(上)
|
8月前
|
存储 缓存 固态存储
一文看懂存储
一文看懂存储
196 1
|
8月前
|
存储 应用服务中间件 nginx
k8s--数据存储、EmptyDir存储
k8s--数据存储、EmptyDir存储
|
8月前
|
存储 监控 安全
使用阿里云存储
使用阿里云存储
75 1
|
9月前
|
存储 小程序 编译器
数据在内存中的存储形式
数据在内存中的存储形式
|
9月前
|
存储 SQL NoSQL
存储的未来
存储的未来
85 1
|
10月前
|
存储 C语言
数据的存储 详解(下)
数据的存储 详解(下)
73 0