指针是啥呢?指针变量是啥?指针是指针变量吗?相信很多同学都一直潜意识的认为指针就是指针变量,其实不然。
指针是地址
指针变量就是一个存放内存地址的变量
int a = 1;
int* p = &a;
printf("%d", *p);
这里p就是一个指针存放的是a的地址,我们俗话说就是p指针指向a。
当我们用“*”号去解引用它时,编译器则会在p的地址中解引用当前地址存放的值,也就是找出来p指针指向的目标a
既然指针变量是存放地址的变量那他会不会有地址,谁来放他的地址呢?
也就是我们的二级指针,一级指针和二级指针的值都是指向一个空间,一级指针指向的空间存放的是源变量的值,二级指针指向的空间存放的是一级指针的地址。
int a = 1;
int *p1 = &a;
int **p2 = &p1;
当我们用“*”号去解引用它时,得到一级指针。