内存中的空间就是就当是一个一个小格子 为了能够方便找到内容 给这些各自都进行了 编号。每个空间的大小是一个字节。
前面我们了解到了 内存中每个空间都是存在编号地址 方便于我们存取数据。
但是编号地址也算是一个数据啊,是一串编号。
那我们就需要想一下存储这个地址
int a = 123;
int * b = &a; //&取地址符 取a的内存地址 赋值给b 。int * 就是一个int类型的指针 指向 &a赋值过来的地址
*b = 111; // *解引用 获取指针的值或者 修改需要使用* , *b给指针b指向的地址重新赋值 111
printf("%d",a); //b指向的地址就是a的内存地址 那么这里输出a 看看结果
结果:111
指针的大小取决于 是32位 还是64位 32位是4字节 64是8字节
因为位数不同 内存编号的长度就不一样
结构体
在描述复杂对象的时候单一的数据类型就没办法完全去描述了。所以就出现了结构体 可以自己创建类型
创建一个描述学生的类型 name age tizhong
struct MyStruct
{
char name[20];
int age;
float tizhong;
};
创建结构体变量 并进行赋值
struct MyStruct xueyuan = {"zhangsan",18,58.2};
输出结构体变量中的内容 “变量名.成员变量名” 就是用来调用里面成员变量的
printf("%s %d %f", xueyuan.name, xueyuan.age, xueyuan.tizhong);
创建结构体指针
struct MyStruct* xy = &xueyuan;
使用指针调用里面的成员需要使用->
printf("%s %d %f", xy->name,xy->age,xy->tizhong);



