一、指针符号『*』和地址符号『&』
『&』符号是取变量的地址,『*』符号是取地址的内容(即:值)。两个操作正好相反。例如:“&i”就是取变量i的地址,“*(&i)”就是取“&i”这个地址的值,其实就是变量i。即然如此,为什么还要定义指针呢?原来,用『&』所取到的地址,自身只能用而不能修改。因此,直接把『&』取到的地址放到指针变量中去,既然指针变量也是变量,这个变量就可以任意存放其它地址。
#include <stdio.h>
int main(void)
{
int i = 100, j=200;
int *p;
p = &i; //变量i的地址赋给p
printf("&i=%p *(&i)=%d\n", &i, *(&i));
printf(" p=%p *p =%d\n\n", p, *p);
p = &j; //变量j的地址赋给p
printf("&j=%p *(&j)=%d\n", &j, *(&j));
printf(" p=%p *p =%d\n", p, *p);
return 0;
}
结果如下:
|