内存
计算机的内存被划分为以字节为单位的一个个内存单元,每个内存单元都有编号,编号就是地址,地址就是指针。在C语言中,创建一个变量其实就是向内存申请一块空间,比如:int a=10,就是向内存申请一块大小为4个字节的空间,每个字节都有地址。&a的时候,拿出的是4个字节中地址较小的那个字节(最前面的位置)的地址,这个地方要储存起来,给一个变量,这个变量就是用来存放地址(指针)的,所以又叫指针变量:int *pa=&a ;
指针变量的大小
指针变量所占空间的大小与该空间内存储了多少无关,在x86的环境中指针变量的大小为4个字节,在x64的环境中指针变量的大小为8个字节。
结构体
在我们的日常生活中其实并没有什么信息是单一类型,几乎都是多元素集合体,比如人的信息:姓名、性别、年龄、身高、体重、身份、血型等;又比如一本书的信息:书名、作者、出版社、定价等,都是复杂对象。
在C语言中,我们用结构体来描述这些复杂对象,结构体的写法为关键字struct+{};因为是复杂对象,所以初始化要用大括号,例如描述一个学生:
打印结构体信息也可以使用指针: