地址的概念
在C语言中,不同类型占用多少字节非常重要,很多指针的操作就是在理解不同类型的字节数大小后进行操作的
在实际计算机处理数据中,地址和变量是分不开,而指针变量就是记录地址的变量
访问方式
直接访问就是指用“变量名”直接访问,间接访问就是用指针地址访问
指针运算&和*
下面这个图总结了&和*号运算的所有使用场景。
指针的初始化
空指针的值为NULL,也就是0
第四条画叉部分,会编译报错,因为需要把整数类型强制类型转换为指针类型
auto指针类型
指针的运算
指针变量声明类型的理解
指针变量只存储地址的值,而从这个地址开始,访问几个字节的地址,和什么类型的数据,完全是由指针变量的类型确定的。
在上面的例子中,*p和s的输出结果是不同的,原因在于指针变量的类型不同,取相应地址的值时,取得的字节数是不同的,所以结果不同
指针的算术运算
指针的自增自减运算
下面a就是数组的地址,也就是a[0]的地址。
后自增的优先级高于解引用运算符,且后自增是先给值,后自增,所以b=3