(3)对于基本数据类型的变量、数组元素我们可以 使用取地址运算符&来获得它们的地址,但是也只 有类型一致才能赋值。 int a[10]; ∥定义int型数组 int *i_pointer=a;∥定义并初始化int型指针 (4)有一种特殊的void类型指针,可以存储任何的 类型地址;但将一个vod类型的地址赋值给非 vod类型的指针变量,要使用类型强制转换。 yoid v;W错误,不能定义void类型的变量 void*p;∥定义vod类型的指针
(3)对于基本数据类型的变量、数组元素我们可以 使用取地址运算符&来获得它们的地址,但是也只 有类型一致才能赋值。 int a[10]; //定义int型数组 int *i_pointer=a;//定义并初始化int型指针 (4)有一种特殊的void类型指针,可以存储任何的 类型地址;但将一个void类型的地址赋值给非 void类型的指针变量,要使用类型强制转换。 void v; //错误,不能定义void类型的变量 void *vp; //定义void类型的指针
指针运算 指针通常进行下列几种运算:赋值运算、取 值运算、算术运算、相减运算、比较运算。 (1)*和&运算 :指针运算符,&:取地址运算符。 例如: 0013200La0=1 00134004a[l2 inta[4]={12,3}; 00300a2=3 0033ay0 int *ip=&a[2: cout<<*ip: 0013A014Lip=0034008 p=100;
指针运算 指针通常进行下列几种运算:赋值运算、取 值运算、算术运算、相减运算、比较运算。 (1)* 和&运算 *:指针运算符,&:取地址运算符。 例如: int a[4]={1,2,3}; int *ip=&a[2]; cout<<*ip; *ip=100; 0013A000 a[0]=1 0013A004 a[1]=2 *ip 0013A008 a[2]=3 0013A00C a[3]=0 … ip 0013A014 ip=0013A008
(2)指针与整数的加减运算 指针的加减运算与普通变量的加减 运算不同,由于指针存储的是变量的 内存地址,指针加上或减去一个整数 n,表示指针从当前位置向后或向前 移动n个 -sizeof(数据类型)长度的存 储单元。因此对于不同的数据类型, n的实际大小就不同
(2)指针与整数的加减运算 指针的加减运算与普通变量的加减 运算不同,由于指针存储的是变量的 内存地址,指针加上或减去一个整数 n,表示指针从当前位置向后或向前 移动n个sizeof(数据类型)长度的存 储单元。因此对于不同的数据类型, n的实际大小就不同
(3)指针自增、自减运算 指针的自增、自减运算是指针加减运算的特 例。指针的自增或自减表示指针从当前位置 向后或向前移动 sizeof(数据类型)长度的 存储单元。 例如: int*p, a=5 p=&a; p+;∥指针p后移4个字节
(3)指针自增、自减运算 指针的自增、自减运算是指针加减运算的特 例。指针的自增或自减表示指针从当前位置 向后或向前移动sizeof(数据类型)长度的 存储单元。 例如: int *p,a=5; p=&a; p++; //指针p后移4个字节