隔了好久才敢提笔写下指针~下面就是我个人对指针的理解,希望对大家有所帮助
内存和地址的关系
内存可以理解为一个个链接的房间,为了更快更方便的寻找到自己要找的房间,那么就会有房间号,此时房间号就可以理解为指针。
故内存的编号地址指针
指针变量和地址
创建一个变量只能如果想要获得它的地址就需要使用&(取地址操作符)。通过取地址就能获得变量的首元素地址。 在内存中地址是连续存放的,那么只要获得首元素地址,就可以顺藤摸瓜获得整个元素地址。
int main() { int a=10; int* p=&a; return 0; }
该段代码中,int* 代表的是int 型的指针 p就代表了指针变量。
如果你获得了一个指针变量的地址,你需要通过指针更改指针变量中的数据,这时就需要使用到*(解引用操作符)
int main() { int a=0; int* p=&a; *p=0;//此时a就变成了0 return 0; }
指针变量的大小:
指针变量在32位系统下 指针大小均为4字节(32位有32个地址而1字节8bit,那么就要有4个字节来存放地址,64位同理),在64位系统下指针大小为8字节。