#include<stdio.h> 
#include<malloc.h>

typedef struct LNode
{
	int data;
	struct LNode *next;
	
}LNode,*List;
int main()
{
	LNode a;
	a.data=3;
	
	List r;
	LNode *p;
	
	p=&a;
	r=&a;
	
	printf("%d\n",p);//p的值是a的地址 
	printf("%d\n",r);//r的值是a的地址 
	printf("%d\n",&r);//取指针自己的地址; 
	return 0;
} 

p:是一个指针变量的名字,表示此指针变量指向的内存地址

&p:既然p是变量自然也有地址,&p表示p的地址

*p:表示此指针指向的内存存放的内容

 

再看下图一目了然: