c中的指標

來源:互聯網
上載者:User

標籤:

一、 指標前奏1. 指標的重要性

指標是C語言中非常重要的資料類型,如果你說C語言中除了指標,其他你都學得很好,那你乾脆說沒學過C語言。

2. 小需求

l void change(int  n)函數調用完畢後,改變實參的值

l 分析:修改實參的值->找到儲存空間->地址

 

二、 指標變數的定義1. 定義的格式

l 類名標識符  *指標變數名;

l int *p;

2. 先定義後賦值

l 簡單取值

int a = 10;

int *p;

p = &a;

printf(“%d”, *p);

l 簡單改值

*p = 9;

3. 定義的同時賦值

int a = 10;

int *p = &a;

4. 實現修改實參5. 注意點

l int *p;   p = 1000;

l int *p;   *p = 100;

l int *p;  *p = &a;

l %p輸出指標裡面儲存的地址值

l 其他指標類型說明,比如float *p;  char *p;

l 不能亂用類型,比如int a = 10;  float *p = &a;

6. 清null 指標

l p = 0;

l p = NULL;

 

三、 指標執行個體  
  1. void swap(char *a, char *b)  (注意temp=a;  a = b; b = temp;)
  2. int sumAndMinus(int a, int b, int *minus)

 

四、 指標探究
  1. 指標變數所佔用的儲存空間
  2. 為何指標變數要分類型?

int i = 2;

char c = 1;

int *p = &c;

printf(“%d”, *p);

 

 

五、 指標與數組1. 指向一維數組元素的指標2. 用指標遍曆一維數組元素

l 先遍曆char數組(‘i’,’t’),再遍曆int類型數組

l *(p+i)和*(p++)的區別

l a+i和a++

l p[0]、p[1]

3. 習題

1> 設計一個函數:int arraySum(int a[], int n),求一維數組a前n個數的和。現在利用int *p替換int a[]

 

六、 指標與字串1. 字串回顧

char s[] = “mj”;

2. 其他定義字串的方式

char *s = “mj”;

或者

char *s;

s = “mj”;

3. 兩種定義方式的區別

l 記憶體分析

l 畫圖分析

l 常量和變數字串的區別

l 常量的記憶體位址查看

4. 習題

1> 編寫一個int string_len(char *s),返回字串s的字元長度

 

七、 返回指標的函數

l 指標也是C語言中的一種資料類型,因此一個函數的傳回值肯定可以是指標類型的

l 返回指標的函數的一般形式為:類型名 * 函數名(參數列表)

 

八、 指向函數的指標1. 為什麼指標可以指向一個函數?

函數作為一段程式,在記憶體中也要佔據部分儲存空間,它也有一個起始地址,即函數的入口地址。函數有自己的地址,那就好辦了,我們的指標變數就是用來儲存地址的。因此,可以利用一個指標指向一個函數。其中,函數名就代表著函數的地址。

2. 指向函數的指標的定義

定義的一般形式:函數的傳回值類型 (*指標變數名)(形參1, 形參2, ...);

3. 使用注意

l 由於這類指標變數儲存的是一個函數的入口地址,所以對它們作加減運算(比如p++)是無意義的

l 指向函數的指標變數主要有兩個用途:

  • 調用函數
  • 將函數作為參數在函數間傳遞

 

c中的指標

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.