在计算机的内存中存放了各种数据,这些数据放在内存的不同字节上,为了准确的访问这些数据,要为这些字节编号,我们将这些编号称为地址也叫指针。
指针变量的定义:例如 int * p = &a; 其中 “ * ” 只有一个作用,就是区别于 int p ;大家都知道 int p是定义一个整型的变量,而我们需要定义的是一个指针,所以我们用“ * ”加以区分,仅此而已,没有别的任何作用。
星号“ * ”共有三种作用:1)用来定义指针变量,如上;
2)代表乘法 ,如a*b;
3)表示获取指针所指内存区存放的数据,如 int a=100; int *p = &a ; 结果*p等于a的值100。
假设 int a ; pa 是指向a的指针,那么 *&a 与 &*pa 的区别在哪呢,其实&a也是一个指针,也指向a,所以 *&a 就等于 pa
所以 *&a = *pa = a, 同理 *pa = a,所以 &*pa = &a = pa。
当我们将 *p 与 p 区分开后,对于指针相关的运算就简单了,如图
在上图中因为内存中存放的都是数字,是int 类型的,所以一个格子代表4个字节