首页>计算机>软件水平考试>复习指导>正文
高级语言程序设计知识点 五

www.zige365.com 2010-7-28 10:44:25 点击:发送给好友 和学友门交流一下 收藏到我的会员中心

  fp= &f;/*使fp指向正*/
  ip=NULL;/*使 ip不再指向任何变量*/ 

5.2  指针变量的应用

   1.指向变目的指针变量
   当指针变量指向某个对象(它的值不是NULL)时,可以用
         * 指针变量
引用指针变量所指向的对象。如语句:
        ip=&i;
        j=* ip;
实现将指针变量ip所指变量的内容(即变量i的内容)赋给变量j。其中,赋位号右边的*ip 表示引用中所指变量的内容。上述赋值等价于:
        j=1;

语句
       *ip=200;
实现向指针变量ip所指变量(即变量i)赋值200。其中,赋值号左边的。ip表示引用ip所指变量。上述赋值等价于
            i=200;
一般地,记号“* 指针变量名”与指针变量所指变量的“变量名”等价。要特别注意:指针变量之间的赋值,指针变量所指向的变量之间的赋值,这两种赋值在表示方法上的区别。如语句
      intpt=ip;
使两个指针变量intpt与ip指向同一个对象,或都不指向任何对象(如果ip的值为NULL)。而语句
     * intpt=*ip;
实现将ip所指变量的值赋给intpt所指的变量。这里要求中与intpt的值都不可以是NULL。通过指针变量引用它所指的变量,实际引用哪一个变量,取决于指针变量的值。改变指针变量的值,就是改变了它的指向。指针变量最主要的应用有两个方面:一是让指针变量指向数组的元素,以便逐一改变指针变量的指向,遍历数组的全部元素;二是让函数设置指针形式参数,让函数体中的代码通过指针形式参数引用调用环境中的变量或函数。
      为正确使用指针变量和它所指向的对象,特指出以下几点注意事项:
  (1)指针变量定义与引用指针变量所指对象采用相似的标记形式(* 指针变量名),但它们的作用与意义是完全不同的。在指针变量定义中(如int *ip;),指针变量名之前的符号“*”说明其随后的标识符是指针变量名。如果指针变量定义时带有初始化表达式,如
     int i, * ip=&i;
初始化表达式的地址是赋给指针变量本身,而不是指针变量所指对象(实际上,在初始化之前,指针变量还未指向任何对象)。
  (2)通过指向变量i的指针变量ip引用变量三与直接按其名i引用变量i ,效果是相同的,凡直接按名可引用处,也可以用指向它的某个指针变量间接引用它。如有
       int i, *ip=&i;
则凡变量i能使用的地方,*ip一样能用。
  (3)因单目运算符* 、&、++和--是从右向左结合的。要注意分清运算对象是指针变量、还是指针变量所指对象。如有
     int i,j,*ip=&i;
语句
      j=++*ip;
是指 ip所指向的变量(变量i)的内容加1,加1后的值赋给变量j。也就是说,++*ip相当于++(*ip)。而语句j=*ip++;相当于语句j=*ip; ip++;这是因为先求值的是表达式 ip++,它的求值规则是,表达式的值为原来ip的位,然后ip的内容增加了 1个单位。所以。 ip++的表达式值与*ip相同,并在*ip++求出表达式值的同时,指针变量ip增加了1个单位。这样,ip不再指向变量i,这种情况常用在指针指向数组元素的情况,在引用数组某元素之后,自动指向数组的下一个元素。而语句j=(*ip)++;则是先引用ip所指向的对象,取ip所指向的对象的内容赋给j,并让中所指向的对象的内容增加1个单位。
    2.指向一维数组元素的指针变量

本新闻共6页,当前在第2页  1  2  3  4  5  6  

我要投稿 新闻来源: 编辑: 作者:
相关新闻
高级语言程序设计知识点 四
高级语言程序设计知识点 三
高级语言程序设计知识点 二