C語言基本語法——指針

  一、什麼是指針數組

  二、指針用於參數指針

  三、指針用於返回值對象

  四、指針加減操做生命週期

  五、指針與數組區別內存

 

一、什麼是指針it

  • 內存被分爲字節,每一個字節有惟一的地址,指針指的就是內存地址。io

  • 保存指針的變量,就叫指針變量。(保存地址)class

  • 聲明一個指針變量變量

int i = 0;數據類型

int* p;//聲明一個指針變量 int* 指針類型

int * p; int* p; int *p;

  • 每一個指針變量能指向一種特定類型的對象(地址,內存區 域)。

  • 指針是引用數據類型,由於自己沒有保存數據,只是保存了 數據的地址,間接的找到內存中的數據。

 

二、指針用於參數

  • 值傳遞

void swap(int a, int b) {

  int temp = a;
  a = b;
  b = temp;

}

int main() {
  int a = 5, b = 8;

  swap(a, b);

  printf(「%d,%d」, a, b);

}

  • 地址傳遞

void swap(int *a, int *b) {

  int temp = *a;
  *a = *b;
  *b = temp;

}

int main() {
  int a = 5, b = 8;

  swap(&a, &b);

  printf(「%d,%d」, a, b);

}

 

三、指針用於返回值

  • 指針也能夠作爲返回值

  • 不要返回自動變量的地址,由於局部變量的生命週期,當函 數結束,局部變量會被自動清除(釋放)。解決方案:延長 生命週期。

 

四、指針加減操做

  • 指針支持加整數、減整數、指針的比較和相減,但運算的單位由指針的類型決定。

    int類型指針+1 = 地址+4

    char類型指針+1 = 地址+1

  

五、指針與數組區別

  • 佔用內存空間

-數組佔用空間 = 數組元素佔用的空間*長度

-指針佔用空間 = 在64位系統下,8個字節,固定的,與指針 的類型不要緊。

  • 賦值

-數組名是常量,是不能夠修改其值

-指針是變量,能夠屢次賦值

-對指針的賦值,本質上是指針指向的改變

相關文章
相關標籤/搜索