what is 指针
指针代表了快递柜中的柜号,柜号中的东西即为值。
对指针的内容进行操作,等于更换快递柜中的东西。
指针的地址是什么
可以将其类比为这个快递柜对应的手机号(假设唯一性)
#include<stdio.h>
int main()
{
// int *p = 10;//erro 地址不能直接等于整数
int a=10;
int b=10;
int *p=&a;
int *q=p;
int *c=&b;
printf("q访问地址:%p\n",p);//p
printf("c访问地址:%p\n",c);//c
printf("q访问内容:%d\n",*p);//p
printf("c访问内容:%d\n",*c);//c
//改变内容值
a=20;//直接改变
*c=21;//间接改变
printf("q访问内容:%d\n",*p);//a改
printf("c访问内容:%d\n",*c);//c改
//元数据
printf("元数B的值:%d\n",b);//b的值在没有直接操作b的赋值情况下发生变化
printf("二级访问:%p\n",&(*p));//与上面一致
printf("三级访问:%p\n",&(*q));
printf("四级访问:%d\n",*q);
if(q==p)
{
printf("两者相等\n");
}
//改变地址 续。
return 0;
}
运行结果:
q访问地址:000000000061FE04
c访问地址:000000000061FE00 注c q 地址不同
q访问内容:10 c q 值相同
c访问内容:10
q访问内容:20
c访问内容:21
元数B的值:21 元数据B发生变化
二级访问:000000000061FE04
三级访问:000000000061FE04
四级访问:20
两者相等