C语言指针入门

”&“ :取址符,即得到变量的实际内存地址。

”*“ :取值符,即把对应地址的内存空间当中的值取出。

例:”*(&b)“的操作是指把该内存地址所存储的内容取出。

所谓指针变量:即存放内存地址的变量。

例:

unsigned char a;
unsigned char *p;   //定义了一个无符号字符型的指针变量
a = 3;    
p = &a;                   //将a变量的地址赋给指针变量p,”&a“代表的是变量a的地址

或:

unsigned char *p = &a; //直接赋值

其中unsigned char *p当中的“p”是声明指针变量的固定格式,不要和单独的“p”弄混了。C语言当中声明指针变量的固定格式就是:type *var_name;

在“p=&a;”当中,p被赋予的值为变量a的内存地址,因此p等于&a等于内存地址。

printf("%p", p)当中的“p”代表的则是相应的内存地址,即p等于&a等于内存地址,其中%p特指地址的占位符。

printf("%d", *p)当中的“p”代表的是变量a的值,其中“”是取值符,即*p = a = 3