指针简单介绍:
指针(Pointer)是编程语言中的一个对象,利用地址,它的值直接指向(points to)存在电脑存储器中另一个地方的值。由于通过地址能找到所需的变量单元,可以说,地址指向该变量单元。因此,将地址形象化的称为“指针”。意思是通过它能找到以它为地址的内存单元。
1)一个变量的地址称为该变量的“指针”。
2)指针是一个地址,指针变量是存放地址的变量。
3)在定义指针变量时必须指定基类型。
定义:
类型 * 指针变量名
int main()
{
int a=10;
int*p; //定义指向整形数据的指针变量(野指针)
int *p=&a; //定义一个整形指针指向a的地址
int **s=&p; //定义一个整形二重指针指向p的地址
return 0;
一个变量的指针的含义包括两个方面:(1)以存储单元编号表示的地址(如编号为2000的字节);(2)它指向的存储单元的类型(如int,char,float)。
图中得到的关系:
p=>&a;
*p=>a;
*s=>p;
**s=>*p=>a; //10
特别强调:
&*p=&a;
*&p=&a; // 这两个语句都是等价的。
char *p;//可以说值指针的类型是char*型,也可以说指针指向的是char行。
那么类型对指针的作用:
1)对指针的解释作用;
当定义两个指针(一个是char *ap型,一个是int *bp型),指向同一个内存地址时,ap识别一个字节(char占一个字节),而bp识别4个字节(int型占4字节)。
2)决定指针加一操作的比特位数。
ap+1 时,内存物理地址增加1位,
bp+1 时,物理地址增加4.