举个例子。
int a=3; 等式右边是常量,左边是变量。
int *p;定义了一个指针变量p。
p=&a; 左边的是指针变量,右边的是指针(指针是地址)
int c;
错误:c=p(类型不一致) 正确c=*p
指针和指针变量是两个不同的概念,指针变量里放的是指针(另一个变量的地址),通常我们叙述时会把指针变量简称为指针,实际他们含义并不一样。
指针的意义
为什么不直接int p=&a; 而非要加一个符号“*”?
1:使人明白p是指针变量而非变量(即p放的是可以指向其他内存单元的地址(同时暗示是整数)而不是任意的值,而int表示是指向整型的指针)
2.若失去”*“,在使用时,c=p只能将p里放的值给c。而c=*p却可以将p的值所表示的地址单元的值给c。
注意:在定义变量时,*是定义指针,在使用指针时, *是解指针(间接访问操作符)
好处
1、直接访问硬件
2、快速传递数据(指针表示地址)
3、返回一个以上的值返回一个(数组或者结构体的指针)
4、表示复杂的数据结构(结构体)
5、方便处理字符串
6、指针有助于理解面向对象