1.&运算符
变量有2个维度。 一个是变量的值。 一个是变量所在内存的地址。
&表示取地址符,用于获取变量的内存地址。
2.指针定义
指针就是一个值为内存地址的变量。就如int类型变量的值是整数,char类型变量的值是字符,指针类型变量的值为地址。
int a = 1;
ptr = &a; // ptr就是指针变量,存的是a的地址。 我们可以说ptr指向a。
3. 间接运算符:*
*
运算符作用于指针类型,可以获取或修改指针所存内存地址上的值。
int a = 1 ; //变量a的值为1
ptr=&a;// 指针存了a的内存地址
var = *ptr // 获取指针所存内存地址上的值,即a的值
4.指针类型的声明
声明指针变量时,必须指定指针所指向变量的类型。(因为不同类型变量占用内存大小不同,一些指针操作要求我们知道操作对象的大小)
pointer ptr; // 指针类型不能这样声明。
指针类型变量p声明方式如下:
int * p;
首先前边的
int
表示 指针类型所指向的变量的类型。此处的
*
跟上边的间接运算符不同,*p也不表示获取指针p所存内存地址上的值。 仅仅表示p是一个指针变量。声明和使用中*p代表的含义不同这点非常重要。声明中int *p表示一个指针变量, 使用中 *p表示 取指针p所存内存地址的值。