常见数据类型(入门)

数据类型是计算机程序中用来表示数据的类别,它们定义了数据的大小、存储方式和可执行的操作。在编程中,数据类型非常重要,因为它们决定了变量可以存储什么类型的值以及可以进行哪些操作。

常见的数据类型包括:

  1. 整数类型(Integer):用于存储整数值,如int、long等。
  2. 浮点数类型(Floating-point):用于存储小数或实数值,如float、double等。
  3. 字符类型(Character):用于存储单个字符,如char。
  4. 布尔类型(Boolean):用于存储真(true)或假(false)的值,如bool。
  5. 字符串类型(String):用于存储一系列字符组成的文本,如string。
  6. 数组类型(Array):用于存储一组相同类型的数据元素,如int[]、float[]等。
  7. 结构体类型(Struct):用于组合不同类型的数据元素,形成一个新的数据类型。
  8. 指针类型(Pointer):用于存储内存地址的变量,通常用于动态内存分配和函数参数传递。
  9. 枚举类型(Enumeration):用于定义一组命名的常量值,如enum Color {RED, GREEN, BLUE}。
  10. 联合体类型(Union):类似于结构体,但所有成员共享同一块内存空间,只能同时使用其中一个成员。

根据编程语言的不同,可能还存在其他特定的数据类型。选择合适的数据类型对于编写高效、可读性强的程序至关重要。

这里我们取前几种数据类型简单分析

1.整型

概念
表达数据类型的数据为整数
 
需要注意的地方
1. int 的本意是 integer ,即整数的意思。
2. int a 代表在内存中开辟一块区域,称为 a ,用来存放整数, a 称为整型变量。
3. 变量 a 所占用的内存大小,在不同的系统中是不一样的, 64 位系统 典型的大小是4 字节。
4. 变量 a 有固定的大小,因此也有取值范围,典型的范 是:-2147483648 2147483647
整型修饰符
short :用来缩短整型变量的尺寸,减少取值范围并节省内存,称为整型。
long :用来增长整型变量的尺寸,增大取值范围并占用更多的内存,称为长整型。
long long :用来增长整型变量的尺寸,增大取值范围并占用更多的内存,称为长长整型。
unsigned :用来去除整型变量的符号位,使得整型变量只能表达非负整数。
signed :表示有符号,一般情况下省略。
需要注意的地方
1. int 的本意是 integer ,即整数的意思。
2. int a 代表在内存中开辟一块区域,称为 a ,用来存放整数, a 称为整型变量。
3. 变量 a 所占用的内存大小,在不同的系统中是不一样的, 64 位系统典型的大小是4 字节。
4. 变量 a 有固定的大小,因此也有取值范围,典型的范围是:-2147483648 2147483647
整型修饰符
short:用来缩短整型变量的尺寸,减少取值范围并节省内存,称为整型。
long :用来增长整型变量的尺寸,增大取值范围并占用更多的内存,称为长整型。
long long :用来增长整型变量的尺寸,增大取值范围并占用更多的内存,称为长长整型。
unsigned :用来去除整型变量的符号位,使得整型变量只能表达非负整数。
signed :表示有符号,一般情况下省略。
short int a ; // 短整型 -10000
long int b ; // 长整型 -10000000000
long long int c ; // 长长整型 -100000000000000000
unsigned int d ; // 无符号整型 10000
unsigned short int e ; // 无符号短整型
unsigned long int f ; // 无符号长整型
unsigned long long int g ; // 无符号长长整型
使用整型修饰符后,关键字 int 可以省略。
short a ; // 短整型
long b ; // 长整型
long long c ; // 长长整型
unsigned d ; // 无符号整型
unsigned short e ; // 无符号短整型
unsigned long f ; // 无符号长整型
unsigned long long g ; // 无符号长长整型
符号位
有符号的整型数据,首位为符号位, 0 表示正数, 1 表示负数。
无符号的整型数据,没有符号位。
编码形式:(计算机中存储和运算的都是 补码
原码:正数直接使用二进制来表达,比如 a=100 ,在内存中是00...001100100
补码:负数用绝对值取反加一来表达,比如 a=-3 ,在内存中是11...1111111101
注意负数的补码在取反加一的时候,符号位是不变的。
编码形式:(计算机中存储和运算的都是 补码
原码:正数直接使用二进制来表达,比如 a=100 ,在内存中是 00...001100100
补码:负数用绝对值取反加一来表达,比如 a=-3 ,在内存中是 11...1111111101
注意负数的补码在取反加一的时候,符号位是不变的。
数据表示范围:
溢出:
超出数据所能表达的范围,称为 溢出 ,就像汽车里程表, 最大值和最小值是相邻的。
进制:源码中可以使用八进制、十进制或者十六进制, 但实际数据中一律是二进制
十进制(默认), 比如 1234
八进制,比如 012 0~7 ), 013 0 表示八进制的标识符,不可省略。
十六进制,比如 0x6FFAB 0xaa1234 ,( 0~9 ~a(10) ~ f(15 ), 一个F表示四个 1 0x 为十六进制的标识符,不可省略。
格式控制符
int 整型: %d
unsigned int 无符号整型: %u
short 整型: %hd,h 代表 half ,即一半的存储字节
long 整型: %ld
long long 整型: %lld
显示不同进制的前缀 : %#o %#x

2.浮点型(实型)

概念
用来表达实数 ( 有理数和无理数 ) 的数据类型
分类
单精度浮点型 (float) 64 位机中典型尺寸是 4 字节
双精度浮点型 (double) 64 位机中典型尺寸是 8 字节
长双精度浮点型 (long double) 64 位机中典型尺寸是 16 字节
占用内存越多,能表达的精度越高

3,字符型

计算机中存储都是 1 0 ,因此各种字符都必须被映射位某个数字才能存储到计算机中,这种映射关系形成的表称为ASCII 码表。
字符本质上就是一个单字节的整型,支持整型所有的运算。
ascll表我们记少不记多,记住重点的几个推就行
0    ---> 空字符
32 ---> 空格字符 ' '
48 ---> 数字字符 '0'
65 ---> 大写字母 'A'
97 ---> 小写字母 'a'
转义字符
转义字符,所有的 ASCII 码都可以使用 \数字 ( 一般是 8 进制数 ) 来表示,而是在 c 中定义一些\ 字母来区分原来字母的含义,我们把这种方式称为转义比如
字符 : 'n' 表示   字母 n
字符 : '\n' 表示  回车键
常用的转义字符有:
'\t' : 水平制表符   tab
'\b' : 退格符
'\a' : 告警符
'\ddd' : ddd 表示 8 进制数,输出该数是对应 ASCII 表的 8 进制
// 注意 \ddd \ 后面只能写 3 8 进制数, 0-7
'\xhh' : xhh 表示十六进制,输出该数是对应 ASCII 表的十六进制
//printf("'\xhh'"); 写法错误
// 注意 \hh \x 后面只能写 2 16 进制数, 0-f

4.布尔类型(重点)

概念
布尔型数据只有真、假两种取值, 非零为真,零为假
注意
1. 逻辑真除了 1 之外,其他任何非零数值都表示逻辑真, 等价于 1
2. 使用布尔型 bool 定义变量时需要包含系统头文件 stdbool.h
3. 布尔型变量在计算的时候,使用的是数值 1 0
布尔型数据常用在逻辑判断、循环控制、函数返回等场合。
bool只有两种状态,要么为1(真),要么为0(假)
不管对bool赋予任意值,非零为真零为假

5.字符串

定义: 双引号 引起来的字符序列。
在内存中的存储
在内存中实际上是多个连续字符的组合  任何字符串都以一个'\0' 作为结束标记
注意:有关与不同的编码格式对应存储中文空间问题:
GBK 编码格式的文件当中,一个中文占用 2 个字节
UTF-8 编码格式的文件当中,一个中文占用 3 个字节, linux 操作系统默认文
件格式为 UTF-8 编码格式,如果文件不是 UTF-8 则会显示乱码。

6.常量与变量

概念
不可改变的内存称为常量,可以改变的内存称为变量
常量的类型:
类型转换
概念:不一致但 相互兼容的数据类型 ,在同一表达式中将会发生类型转
换。
转换模式:
隐式转换:系统按照隐式规则自动进行的转换 ( 低精度到高精度 )
强制转换:用户显式自定义进行的转换
隐式规则:从小类型向大类型转换,目的是保证不丢失表达式中数据的
精度

7.数据类型的本质

概念:各种不同的数据类型,本质上是用户与系统对某一块内存数据的解释方式的约定。
推论:
类型转换,实际上是对先前定义时候的约定,做了一个临时的打破。理论上,可以对任意的数据做任意的类型转换,但转换之后的数据解释不一定有意义。
总结:其实就是申请一块对应数据类型的空间来存放数据,称为数 据类型

8、整型数据尺寸

概念:整型数据尺寸是指某种整型数据所占用内存空间的大小,C语言标准并未规定整型数据的具体大小,只规定了相互之间的 相对大小 ”
比如:
short 不可比 int
long 不可比 int
long 型数据长度等于系统字长
系统字长: CPU 一次处理的数据长度,称为字长。比如 32 位系统、 64位系统。
典型尺寸:
char 占用 1 个字节
short 占用 2 个字节
int 16 位系统中占用 2 个字节,在 32 位和 64 位系统中一般都占用 4个字节
long 的尺寸等于系统字长
long long 32 位系统中一般占用 4 个字节,在 64 位系统中一般占用8个字节
  • 27
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值