【计算机】浅谈指针

内存的本质

最早的内存其实是一根纸条,而如今你可以把它想象成一排房子。不过只有一边有,对面没有就是了。
而每间房子住了三个家伙:地址、含的值、名字(关键字)。


为什么不能给空指针赋值?

比如下面的代码会报错,因为指针p没有地址,它所含的是一个随机数罢了,而我们的内存地址是有限了,这个随机值对应内存地址很可能会超过或者已经被占用。那自然是无法赋值的。

1
int *p;*p=10;

当然如果已知地址了,就可以给该地址所在的内存单元赋值了。


数组与指针

1
int a[10],*p=a;

此时的p所含的地址是数组的首个元素的地址,即a[0]的地址。而p+1则为a[1]的地址,以此类推。

值得注意的是,a[i]本身就是数据类型为常量的指针,因为是常量也就是说是无法直接操作,所以才使用*p


【计算机】浅谈指针
https://zyf-42.gitee.io/pointer/
作者
zyf-42
发布于
2022年12月5日
许可协议