------ <a href="http://www.itheima.com" target="blank">Java培训、Android培训、iOS培训、.Net培训</a> 期待与您交流! -------
总结指针之前我们首先要分清内存单元的地址和内存单元的内容。
指针存放的是内存单元的地址。
int *p;
p 是整型指针,指向整型变量
float *fp;
fp是浮点型指针,指向浮点型变量
char *cp;
cp是字符型指针,指向字符型变量
&:取地址运算符,给出变量的地址。
int*p, a = 3;
p= &a; 把 a的地址赋给p,即p指向a
*:间接访问运算符,访问指针所指向的变量。
*p:指针变量p存放的地址内的内容。
(1) 当p= &a后,*p与a相同
(2) int*p; 定义指针变量p
*p=10; 指针p所指向的变量,即a=10;
(3) &*p与&a相同,是地址
*&a与 a 相同,是变量
(4) (*p)++ 等价于 a++
将p所指向的变量值加1
注:指针变量必须先初始化
指针和数组
inta[100], *p;
数组名代表一个地址,它的值是数组首元素的地址(基地址)
a+i是距数组a的基地址的第i个偏移,它代表了a[i]的地址,所以*(p+i)=*(a+i)=a[i]