一级指针
- 不知道什么叫一级指针?其实就是我们平时定义的指针
- 举例:
int a =1;
int* p = &a;
//这里的指针就是一级指针
二级指针
- 如上面所说,指针变量是指变量的地址,而指针变量也是个变量,则它也有地址;
- 则,指向指针变量的地址的指针叫做二级指针;
- 举例:
int main()
{
int a = 10;
int* pa = &a;//一级指针
int* *ppa = &pa;//二级指针
- 既然一级指针有自己的地址,那么二级指针也是同样有自己的地址;
- 则,指向二级指针的地址称为三级指针,就这样以此类推。。。
int a = 10;
int* pa = &a;
int* *ppa = &pa;
int***pppa = &ppa;//三级指针
- 如第二个代码照片所示(等过段时间买个触控笔,照片形式不是很好,,)
- 接下来看代码更深刻的了解一下
#include <stdio.h>
int main()
{
int a = 10;
int* pa = &a;
int* *ppa = &pa;
printf("%d\n",**ppa);
/* *ppa指向的是pa,
则**ppa指向的就是a*/
return 0;
}
- 则输出结果就是a的值:10;
- 如果我们再给**ppa赋值呢?结果又是多少?
#include <stdio.h>
int main()
{
int a = 10;
int* pa = &a;
int* *ppa = &pa;
**ppa = 30;//在这里重新给**ppa赋值
printf("%d\n",**ppa);
printf("%d\n",a);
return 0;
}
自己可以在编译器上打,最终结果是多少呢?
30;
//因为最后给**ppa赋值为30,则结果也为30;
30;
//而**ppa指向的是变量a,则说明a的变量最终结果也为30;