「这是我参与2022首次更文挑战的第14天,活动详情查看:2022首次更文挑战」。
数据类型的介绍
C语言类型:
1.内置类型
char
short
int
long
double
float
2.自定义类型(构造类型)
类型的意义:
1.使用这个类型开辟内存空间的大小(大小决定了使用范围)
2.如何看待内存空间的视角
int main()
{
int a = 10;
float f = 10.0;
return 0;
}
存储方式不一样,内存不一样
类型的基本归类
1. 整形家族
char(字符类型):
unsighed char
signed char
short:
unsighed short
signed short
int :
unsighed int
signed int
long:
unsighed long
signed long
2.浮点型家族
float 单精度浮点型
double 双精度浮点型
构造类型
1.数组类型
2.结构体类型 struct
3.枚举类型 enum
4.联合类型 union
指针类型
int *pi;
char *pc;
float *pf;
void* pv;
void类型:空类型:
通常应用于函数的返回类型,函数的参数,指针类型
void test(void)
{
printf("hehe\n");
}
int main()
{
test(100);
return 0;
}
整形在内存中的储存
先来了解一下这些概念:
原码、反码、补码
三种表示方法均有符号数(整型)和数值位两部分,符号位都是用0表示”正“,用1表示”负“,而数值位三种表示方法各不相同。
(无符号数原码、反码、补码相同)
计算规则:
原码:直接将二进制按照正负数的形式翻译成二进制就行。
反码:将原码的符号不变,其他位依次按位取反
补码:反码+1
int main()
{
int a = 20;//4个字节-32bit
//00000000000000000000000000010100 - 原码
//00000000000000000000000000010100 - 反码
//00000000000000000000000000010100 - 补码
//0x00000014 - 16进制
int b = -10;
//10000000000000000000000000001010 - 原码
//01111111111111111111111111110101 - 反码
//1111 1111 1111 1111 1111 1111 1111 0110 - 补码
//FFFFFFF6 - 16进制
return 0;
}
正数原码、反码、补码完全相同
对于整型来说数据存放内存中其实存放的是补码。
在计算机系统中,数值一律用补码来表示和存储
sum:
整数:
1.有符号数:
正数原码、反码、补码相同
负数原码、反码、补码不相同
2.无符号数:
原码、反码、补码相同
大小端介绍
什么是大小端?
大端存储模式:是指数据的低位保存在内存的高地址中,而数据的高位,保存在内存的低地址中
小端存储模式:是指数据的低位保存在内存的低地址中,而数据的高位,保存在内存的高地址中
例:11 22 33 44 - 大端
44 33 22 11 - 小端