山不在高,有仙则名。水不在深,有龙则灵。
----CSDN 时时三省
指针是什么
在计算机科学中,指针( Pointer )是编程语言中的一个对象,利用地址,它的值直接指向( points to )存在电脑存储器中另一个地方的值。由于通过地址能找到所需的变量单元,可以说,地址指向该变量单元。因此,将地址形象化的称为“指针”。意思是通过它能找到以它为地址的内存单无。
内存
会把内存划分成一个一个的内存单元
会给每个内存单元进行编号,这个编号就是内存单元的地址 地址也就是指针 地址相当于指向了这个内存单元
a占4个字节
拿到的是a的4个字节中第一个字节的地址
*pa可以直接改a的变量
地址如果存起来的话需要一个变量 可以称为指针变量
一个小的内存单元是1个字节
指针的大小在32位平台是4个字节,在64位平台是8个字节
指针和指针类型
指针类型的意义
4个二进制位可以表示16进制数字
1就需要4个字节 后面的每个数字也都需要4个比特位 一共需要32个比特位 也就是4个字节 4个字节就是一个整型 a就是一个整型
*pa可以直接把a改成0
如果改成这样 它只会改变一个字节
总结
1.指针类型决定了:指针解引用的权限有多大
2.指针类型决定了:指针走一步走多远(步长)
如果是int类型a+1是会跳过4个字节
但如果是char类型a加1只跳过一个字节