1.内存被划分为一个个的内存单元,每个内存单元的大小是1个字节。
2.每个字节的内存单元都有一个编号,这个编号就是地址,地址在C语言中被称为指针。
3.地址要存储的话,存放在指针变量中。
4.每个内存单元都有一个唯一的地址来标识。
5.在32位机器上的地址的大小是4个字节,所以指针变量的大小也是4个字节
同理:在64位机器上地址的大小是8个字节,所以指针变量的大小也是8个字节
6.野指针:如何规避野指针?
(1)指针初始化 如果指针不知道初始化什么值,为了安全初始化NULL
int *p=NULL; 如何明确指针应该指向哪里,就初始化正确的地址
int a=10; int *p=&a; &a是取变量a的地址,*p指针指向a的地址
(2)小心指针越界。
(3)指针指向空间释放,及时置NULL
(4)避免返回局部变量的地址
(5)指针使用之前检查有效性
NULL-----0 0作为地址时,这个地址用户程序是不能访问的。
7.指针和数组的关系:
(1)指针就是指针,指针变量就是一个变量,存放的是地址,指针变量的大小是4/8个字节。
(2)数组就是数组,可以存放一组数,数组的大小是取决于元素的类型和个数。
(3)数组的数组名是数组首元素的地址,地址是可以访问指针变量中 通过指针可以访问一个数组的元素