C :指針

指針

1. 指針與數組

數組:name[ ]; 數組名其實質至關於數組的首地址,name[ ] 至關於取第幾地址的值數組

指針:*p ,聲明一個指向(類型)的指針函數

p = name,p是一個地址,指向name的首地址指針

用法: *p == name[0] ;內存

​ *(p++) == name[1];引用

2.指針與函數

在函數的形參中使用co

int name[10];void

void fun(int p, int n); // p說明傳入的是一個地址,也可用int p[],兩種形式等價,後者還說明傳入的是一個數組形式的整型const

在調用函數時 fun( name,10); // 傳入的是數組的地址,所以使用的是name

若是傳入的不是一個數組,如 int num;一個數

則傳入時需加上取址符&,fun(&num,10);

注意:傳入的數組在函數中的操做能夠被修改,若無心修改應使用const int聲明

3.指針的操做

賦值、解引用、取址、指針與整數相加、遞增指針、指針減去一個整數、遞減指針、指針求差、比較

注意:

  1. 指針求差即兩個指針相減,所得數是兩指針所相差的類型數,如整型指針p1-p2=2,則地址相差2個int
  2. 指針遞增遞減操做,當心越界操做,即指針地址指到未定義範圍
  3. 不要解引用未初始化的指針,如 int *p = 5,此時5的地址不知道會在何處。要麼使用malloc()事先分配內存
相關文章
相關標籤/搜索