請幫忙點一下!謝謝!

2015年9月9日 星期三

11. C++ 指標 2

指標與參照
取"址"運算子 &
取"值"運算子 *
EX:

      double X = 3.8;
      double* p = &X;
 ==> *p 是X的內容 3.8
         &X是p的內容,亦即X的位址

陣列與指標的代數計算
一. 一維陣列就是向量
      double NCHU[m];
      第n+1個元素,也就是NCHU[n]的位址為
      &NCHU[0]+ n*sizeof(double)
二. 二維陣列
      double NFU[m][n];
      元素 NFU[i][j]的位址為
      &NFU[0][0]+(i*n+j)*sizeof(double)
三.指標代數
     [1] 一個向量NCNU, 再定義一個指標變數yukuan
           則下面兩式可以將NCNU[0]的位址存到yukuan裡面:
           (1) yukuan = &NCNU[0];
           (2) yukuan = NCNU;
     [2] 藉由指標變數yukuan,一維陣列元數可以使用取值運算子*獲得
           (1) *yukuan  //相當於NCNU[0]
           (2) *(yukuan+i)  //相當於NCNU[i]
           *++yukuan     相當於*(++yukuan)  先增加指標再取用元素
           *yukuan++     相當於*(yukuan++)  先取用元素再增加指標
           *--yukuan       相當於*(--yukuan)    先減少指標再取用元素
           *yukuan--       相當於*(yukuan--)    先取用元素再減少指標
二維陣列指標
    亦即"陣列"
    double NCHU[m][n];
    NCHU[0][0]   *NCHU[0]
    NCHU[0][1]   *(NCHU[0]+1)
    NCHU[1][0]   *NCHU[1]
    NCHU[1][1]   *(NCHU[1]+1)

沒有留言: