指针

1.指针是一个其值为地址的变量(或更一般的说是一个数据对象)。如果你想把某个指针变量命名为ptr,可以用语句:ptr=&pooth;    称ptr指向pooth。ptr和&pooth的区别在于前者为一变量,后者是一个常量。


2.间接运算符*

  假定ptr=&bah; 可以使用间接运算符*(也称取值运算符)来获取bah中存放的数值。

  val=*ptr;  两个语句放在一起等于val=bah;

  注:(1)地址运算符& 后跟一个变量名时,&给出该变量的地址。

          (2)间接运算符* 后跟一个指针名或者地址时,*给出存储在被指向地址中的数值。


3.指针的声明

   例:int *pi;   char *pc;

   类型标识符表明了被指向变量的类型,而*表示该变量为一指针。声明int *pi;的意思是pi是一个指针,而且*pi是int类型的。*和指针名之间的空格是可选的,通常在声明中使用空格,而在指向变量时将其省略。


4.指针操作

假定:int urn[5]={100,200,300,400,500};

           int *ptr;

           ptr=urn;

           ptr1=&urn[2];

(1)赋值——可以把一个地址赋给指针。

         通常使用数组名或者地址运算符&来进行地址赋值。地址应该和指针类型兼容。例如不能把一个double类型的地址赋给一个指向int的指针。

(2)取值——运算符*可以取出指针指向地址中存储的数值。

(3)取指针地址——指针变量同其他变量一样具有地址和数值,使用&运算符可以得到存储指针本身的地址。

(4)将一个整数加给指针

        可以使用+运算符来把一个整数加给一个指针。例如:ptr+4等同于&urn[4]。如果相加结果超出初始指针所指向的数组的范围,那么结果是不确定的。

(5)增加指针的值

       可以通过一般的加法或增量运算符来增加一个指针的值。对某数组元素的指针做增量运算,可以让指针指向下一个元素。例如ptr++使ptr指向urn[1]。

(6)从指针中减去一个整数 (同第(4)条)

(7)减小指针的值(同第(5)条)

(8)求差值——可以求出两指针间的差值

          通常对分别指向同一个数组内两个元素的指针求差值,以求出元素之间的距离。差值的单位是相应类型的大小。例如:ptr1-ptr的值是2,表示指针所指向对象之间的距离为两个int数值得大小。参加运算的两个指针要指向同一个数组。

(9)比较——可以使用关系运算符来比较两个指针的值,前提是两个指针具有相同的类型。

         

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值