一、关于指针的一些定义
1>指针简而言之就是地址,“指针=地址”。int *p=&a; //定义时*说明P是个指针(地址)变量 int *p=100; //解引用。
2>获取任何变量的地址都是:&变量名。
3>*指针变量名,则间接访问(调到、解引用)到指针所指的变量。
通过下列代码对对指针进行进一步的诠释:
int main()
{
int a=20;
int b=30;
int *p=&a; //定义时*说明是指针(地址)变量
*p = 1000; //解引用 //a=1000
p = &b; //b=1000
*p = 200; //b=200
int **pp=&p;
*pp=&a; //解引用
**pp = 300; //*p=300;a=300
}
指针变量比其他变量多了一个解引用。引用符号*,*变量名=100(例如)就是一个解引用过程。
“指针=地址”,这个定义就是,int a,a的地址为&a,*p=&a,**p=&*p(即p->int *、*p->int **),去一次地址多一个*。
ps:在C语言中,&表示的含义:<1>按位与(&a 单目运算符)<2>地址符号
在C语言中,*表示的含义:<1>乘法(3*4 双目运算符) <2>指针变量(指针定义时 例如:int *p) <3>解引用(例如:*p=1000)
二、指针的大小
在x86或32位平台,指针是4字节
在x64或64位平台,指针是8字节