int a=10;
int *p=&a;
int *p;
:这行代码声明了一个名为p
的指针变量,它指向int
类型的数据。p
本身是一个变量,用于存储内存地址。*p
是解引用操作,表示访问p
指针指向的内存地址处的int
类型数据。
这是指针赋值格式,然后我看到过有(int*)&p这种用法,查了之后知道了,这是先取p的地址,然后用(int*)转换p的地址的格式,应该就像string s="123",(int)s这种。
我就想int *p=&a这一步,*解引用跟谁都可以,我把int* 想成是跟int,char等一类的基础数据类型,就叫指针型,然后int* p的这个p就是申明数据类型为一个地址,*去跟p的话即*p,就是解引用,*p指的就是p这个地址指向的值,即10。