指针详解
#include <stdio.h>
int main(void)
{
int * p;
int i = 5;
p = &i;
printf("*p=%d\ni=%d\n", *p, i);
return 0;
}
1.p是变量的名字,int * 表示的p变量存放的是int类型变量的地址
int * p不是定义了一个名字为* p的变量;p是变量名,p变量的数据类型是int *类型即存放int变量地址的类型。
2.p 保存了 i 的地址,所以 p 指向 i ;但 p 不是 i ,i 也不是 p 即修改 p 的值不会影响i的值,修改i的值也不会影响 p 的值
3.如果一个指针变量指向了某个普通变量则
- 星号指针变量就完全等同于普通变量
eg:若p是一个指针变量且存放了普通变量i的地址则
p 指向了 i 即* p 完全等同于 i( * p=i)
凡是出现i的地方都可以换成 * p
凡是出现 * p 的地方都可以换成i
4.* p就是以 p 的内容为地址的变量
指针
1.指针就是地址
2.地址是内存单元的编号
3.指针变量是存放内存单元的变量
3通常叙述时会把指针变量简称为指针