个人觉得指针和变量的地址挂钩,即指针是对变量地址的另一个称呼
整体认识
int i = 0 ------ 定义整型变量
定义完成变量之后会自动地分配内存地址(且不可更改)
在定义完变量i之后,会产生与之相对应的地址,由于i为int类型,所以分配1000-1003地址,四个字节。
可以将i当作一个固定位置的盒子,盒子的空间四个字节,盒子里放了一个0
然后再定义一个变量p,此变量为指针变量类型,标记为*p。
相当于又有了一个叫p的盒子,用来存放变量i的地址,变量i的地址表示为&i
存放地址及简介
当存放的时候,即为指针变量赋值的时候,有以下两种方式
当定义完指针后,若是使用p,则表示变量的地址
若是使用*p,则表示取变量地址下的内容
*&a:表示取a地址下的内容
&*p:表示取a的地址
指针的自增
指针自增是针对地址自增,如整型变量每次自增四,即跳到下一个地址起始位置
#include<stdio.h>
void main()
{
int* p, a = 0;
p = &a[0];
for(int z=0;z<5;z++)
printf("%d\n", p++);
}
注:指针变量使用之前必须定义和进行赋值
指针变量只能赋予地址
&为取地址符