按变量的地址(变量名/变量的外号) 存取变量的值数组
将变量的地址放在另外一个内存单元中,先到另外一个内存单元中取得变量的地址,再由变量的地址找到变量并进行数据存取ide
变量Pointer是一个指针变量(自己是一个变量),它存储的是另外一个变量的内存地址(i的内存地址),咱们说pointer指向i指针
一个变量存储了另外一个变量的内存地址,咱们说它指向i(另外一个变量)blog
指针的概念:一个变量的地址称为该变量的指针内存
指针变量:专门用于存储其它变量地址的变量it
指针与指针变量的区别,就是变量值与变量的区别class
指针变量的三要素变量
float *p1=p1的地址float
方式一:指针变量名 =&变量名; &->取地址符im
方式二:经过另外一个指针变量赋值
int i ,*p1,*p2; //声明一个变量i,指针p1和指针p2
赋值方式一:p1=&i
赋值方式二:p2=p1
例如:int *p,i;
char *q,c;
p=&i;
q=&c;
内存地址示意义以下:
int 型占据 2个字节,char型占据1个字节
求: p++ ,q++
p++ 即 i的地址移1位(2个字节)
q++,即c的地址移动1位(1个字节)
数组的名称就是一个指针
三、两个运算符
*:求其后内存地址中的内容
&:求变量的内存地址
pointer_1指向a,pointer_2指向b
----------------------- 分割线 ---------------------
问:若已执行了 pointer_1=&a,则:&*pointer_1的含义是什么?
答:pointer_1=&a ,这时pinter_1存储的是 a的地址,
*pinter_1 是取指针所指向的值,也即 a
因此 &*pinter_1 就是取 a的地址,至关于 &a
*取内容,&取地址,二者是互异的,互相抵消
问:*&a的含义是什么?
答:&a取的是地址,*地址取的是内容,因此*&a 就是a
问:(*pinter_1)++至关于什么?
答:*pointer_1 是取pointer_1所指向的值,因此这里至关于 a++