提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
一、八大基本类型
分类 | 类型 | 字节空间 | 取值范围 |
整数型 | byte | 1 | -127到128 |
short | 2 | -2^15到2^15-1 | |
int | 4 | -2^31到2^31-1 | |
long | 8 | -2^63到2^63-1 | |
浮点型 | float | 4 | 单精度(小数部分少) |
double | 8 | 双精度(小数部分多) | |
字符 | char | 1 | 0到65535 |
布尔 | boolean | 1 | 真true 假false |
二、数组
数组:是多个基本同类型数据变量组成的。
格式:数组所存储的数据的类型 数组名 [] = {元素1,元素2,元素3}
1.一维数组
一维数组在内存中是连续存放的。随着数组下标的增长,地址是由低到高变化的。数组名即为数组首元素的地址。
int arr[] = { 9, 8, 7, 6, 5, 4, 3, 2, 1, 0 };
arr = &arr[0];
三、结构体
有多种基本数据类型变量组成
struct Stu
{
//成员变量
struct B sb;
char name[20];//名字
int age;//年龄
char id[20];
}s1,s2;//s1和s2也是结构体变量
//s1,s2是全局变量
补充:调用结构体时使用指针
四、指针类型的区别
1.指针类型的意义
①指针类型决定了:指针解引用的权限有多大
②指针类型决定了,指针走一步,能走多远(步长)
int main()
{
int arr[10] = { 0 };
char* p = arr;
int i = 0;
for (i = 0; i < 10; i++)
{
*(p + i) = 1;//①char指针内存里每次只走一个字节②int指针内存里每次走四个字节
}
}
2.指针类型的区别
常用的指针类型 | 步长 |
char | 一个字节 |
byte | 一个字节 |
short | 两个字节 |
int | 四个字节 |
long | 八个字节 |
float | 四个字节 |
double | 八个字节 |
补充:
①二级指针
//二级指针
//int a =10;
//int *pa = &a;
//int **ppa = &pa; a的地址存放在pa中,pa的地址存放在paa中。pa是一级指针,而paa是二级指针。
②数组与指针
//数组与指针
//arr[2]==2[arr]==*(arr+2)
//p[2]==*(p+2)
③如何避免野指针
//1.指针初始化 int* p= NULL;
//2.小心指针越界
//3.指针指向空间释放即使置NULL
//4.指针使用之前检查有效性 : 不能使用空指针
总结
不同指针类型的步长大小等于基本类型的字节空间大小,可以一起记忆