一、指针
1.内存
计算机中程序的运行都是在内存中,内存被分为一个个小的内存单元,每个内存单元的大小是一个字节(1byte)。同时为了有效访问,给内存单元编号,这些编号被称为内存单元的地址符(地址也被称为指针)。
当电脑访问我们的内存,要通过地址线(1/0的电信号),比如一个32位的电脑,就有32条地址线,就可以管理2^32个地址序列,换算过来就是4GB。
2.&(取地址操作符)
如果我们定义了整型变量a并赋值,一个整型占四个字节,即四个地址,这是我们取出的地址为四个地址中的首地址。(打印地址要用%p)
3.当我们要存放地址时,要用int *p=&a,p就是指针变量,p的类型是int *,*说明p是指针变量,int说明p指向的对象是int类型的。
4. *(解引用操作符)
通过p中存放的地址,找到p指向的对象,*p就是p指向的对象。
5.指针变量的大小
可以用sizeof打印指针的大小。不管是什么类型的指针,都是在创建指针变量,指针变量是用来存放地址的,指针变量的大小取决于一个地址存放时需要多大的空间。在64位电脑上就是8个字节,32位就是4个字节。不管是char类型还是int类型的指针都是一样的。
二、结构体(struct)
1.把一些单一类型组合在一起的做法。作用相当于写代码时的定义整型(字符型)用到的int(char)
2.形式:struct 名称{};。这时struct+名称就相当于int,可以用来定义变量,如图,
也可以这么打印:(指针变量指向的对象).成员名或者结构体指针变量->成员名
3. .操作符的用法:结构体对象+.+成员名