zoukankan      html  css  js  c++  java
  • [C++程序设计]指向数组元素的指针

    如果先使p指向数组a的首元素(即p=a),则:


    (1) p++(或p+=1)。使p指向下一元素,即a[1]。 如果用*p,得到下一个元素a[1]的值。

    (2) *p++。由于++和*同优先级,结合方向为自右而 左,因此它等价于*(p++)。作用是: 先得到p指向 的变量的值(即*p),然后再使p的值加1。例6.5(3)程
    序中最后一个for语句: for(p=a;p<a+10;p++) cout<<*p;
    可以改写为
    for(p=a;p<a+10;) cout<<*p++;


    (3) *(p++)与*(++p)作用不同。前者是先取*p值,然 后使p加1。后者是先使p加1,再取*p。若p的初值 为a(即&a[0]),输出*(p++)得到a[0]的值,而输 出*(++p)则得到a[1]的值。


    (4) (*p)++表示p所指向的元素值加1,即 (a[0])++,如果a[0]=3,则(a[0])++的值为4。注意: 是元素值加1,而不是指针值加1。


    (5) 如果p当前指向a[i],则
    *(p--) 先对p进行“*”运算,得到a[i],再使p减1,
    p指向a[i-1]。
    *(++p) 先使p自加1,再作*运算,得到a[i+1]。 *(--p) 先使p自减1,再作*运算,得到a[i-1]。
    将++和--运算符用于指向数组元素的指针变量十分 有效,可以使指针变量自动向前或向后移动,指向 下一个或上一个数组元素。例如,想输出a数组 100个元素,可以用以下语句:
    p=a;
    while(p<a+100) cout<<*p++;

    p=a;
    while(p<a+100) {cout<<*p;
    p++;}
    在用*p++形式的运算时,很容易弄错,一定要十分 小心,弄清楚先取p值还是先使p加1。

  • 相关阅读:
    算是鼓励自己吧
    那些年,我们一起追过的梦想
    敢问路在何方?
    关于红黑树旋转算法的一点说明
    存一下
    shell脚本变量
    ubuntukylin
    如何在批处理作业进行DEBUG
    IBM AS/400 应用系统开发的软件工程工具分析
    AS/400开发经验点滴(六)如何制作下拉菜单
  • 原文地址:https://www.cnblogs.com/galoishelley/p/3858222.html
Copyright © 2011-2022 走看看