一、指针符号『*』和地址符号『&』
『&』符号是取变量的地址,『*』符号是取地址的内容(即:值)。两个操作正好相反。例如:“&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;
- }
结果如下:
|