指针

指针就是一个地址
在编程语言中,“指针”就是一个地址直接指向内存中另一个地方的值。由于通过这个地址我们可以间接访问一个单元我们就称这个地址指向它,从而就形象的将它称作“指针”。

指针也是变量
指针也是一种需要内存空间的变量,我们定义一个指针变量p时,p+1的意义就变成了p向后走了一个单元,p的地址和p+1的距离是多远就取决于指针的类型,比如指针的类型的大小是四个字节那么p和p+1之间的距离就是四个字节。

常量指针
int x=5;
int *p=NULL;
p=&x;
这时候p=&x,不能再变了,但可以改变改地址中的值。

指针和数组的关系
char a[666];
char pa=NULL;
pa=a;
有了上面的赋值,指针和数组就相通了,pa和a可以互换
当引用a[66]时,就有很多方式了:
指针方式:(pa+66),(a+66),(&a[0]+66),(&pa[0]+66)也就是先找到其地址再引用
用数组引用时也可以用pa[66]
需要注意的一点是pa才是指针(地址),pa的值可以改变,&a[0],a的值是常量;

多级指针
指针作为一个变量有自己的存储地址,而指针也可以指向另一个指针的地址,即二级指针。依次叠加,就形成了多级指针。
和指针变量的定义类似,由于*是右结合的,所以*pp 相当于*(*p)。在本次定义中,二级指针的变量名为 pp,而不是**p。多级指针的定义就是定义时使用多个“*”号。

posted @ 2021-11-18 23:39    阅读(107)  评论(0编辑  收藏  举报