【知识总结】指针
1.内存和地址
(1)内存中的每个位置由一个独一无二的地址标识;
(2)内存中的每个位置都包含一个值;
(3)变量名字与内存地址相对应,由编译器为我们实现,变量给了我们更方便的方法记住地址(硬件仍然通过地址访问内存位置);
【注】在某些要求边界对齐(boundary alignment)的机器上,整型值存储的起始位置只能是某些特定的字节,通常是2或者4的倍数;
2.值和类型
不能简单地通过检查一个值的位来判断它的类型,判断一个值的类型(以及它的值),必须观察程序中这个值的使用方法;
3.指针变量的内容
(1)一个变量的值就是分配给这个变量的内存位置多存储的数值;
(2)指针变量存储的是某块内存的地址;
4.间接访问操作符
通过一个指针访问它所指向的地址的过程称为间接访问(indirection)或解引用指针(dereferencing point)。这个用于执行间接访问的
操作符是单目操作符*。
5.未初始化和非法的指针
声明一个指针并不会自动分配任何内存,在对指针执行间接访问前,指针必须进行初始化。
6.NULL指针
【注】对一个NULL指针进行解引用是非法的,在对指针解引用之前你首先必须确保它并非NULL指针。
7.指针常量
【问】如果想把25这个值存在100这个位置,该怎么办?
【答】*(int *)100 = 25;
作者:斯涵
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利.