要明确这两者的差异,首先需要了解一下 指针 的定义(以下是我个人的理解,有出入欢迎指正)
1.指针的定义
指针说得简单就是就是一个内存的地址,能理解这一步对指针的理解就很简单了,常见的比较绕的定义
指针变量: 一个 存储了 内存地址 的变量--简单说就是指针
变量的指针:一个变量的 内存地址
2.指针的代码表现
与指针挂钩的 特殊字符 常见的有 “*”、"&"
*:可以理解为 取某指针变量指向的内存值
&:可以理解为取 某变量 的内存地址
能理解这两个特殊字符的含义,对于指针变量的赋值就可以很好地理解了
例如:
最简单的:
int number = 1;
int *ptr = &number;
用上面的解释来解读一下这个很常见的 代码:
*ptr:取变量ptr 指向的内存值
int *ptr :变量ptr 指向的内存值 为int型
得出:ptr为一个指向int型的 内存地址
所以有赋值:
ptr = &number:取number的内存地址赋给 ptr变量
稍微复杂一点的: