《C語言的精華 指標》 基礎理解

2021-10-20 06:28:16 字數 1936 閱讀 4928

《c語言的精華:指標》

位址形象化的稱為「指標」,即指標就是位址。

記憶體區的每乙個位元組都有乙個編號,即為「位址」。

#include

intmain()

// 執行結果:

6487580

----

----

----

----

----

----

----

----

process exited after 5.69 seconds with return value 7

請按任意鍵繼續.

..

2.1 「指標變數」和「指標」的區別

指標就是位址;

指標變數是用來存放位址的變數。

2.2 定義指標變數

// 語法:

型別名 *指標變數名;

// eg:

int*pointer_1;

2.3 給指標變數賦值

① 定義時賦值:

#include

intmain()

② 先定義後賦值

#include

intmain()

第一種好理解,但是第二種種的4、5行可能不好理解。解析如下:

(1)指標變數前面的 「*」 表示(用來說明)該變數是乙個指標變數。指標變數的名字為i_pointer,並不是所想的 *i_pointer。這裡和我們往常定義的int、float、char等型別的變數不同的。

*i_pointer:表示該指標變數i_pointer所指向的物件。

i_pointer:表示指標變數i_pointer

eg: #include

intmain()

// 結果:

1236487572

----

----

----

----

----

----

----

----

process exited after 5.05 seconds with return value 0

請按任意鍵繼續.

(2)定義指標變數時是必須指定基型別的。指定基型別的作用是告知編譯器取出的是什麼型別的資料,然後應該按照什麼樣的 儲存形式 和 儲存單元的長度 正確的去除該資料。

所以你的指標變數指向的是什麼型別的資料,該指標變數也應當是相同的資料型別。

int i =

1234

;int

*i_pointer =

&i;char i =

123;

char

*i_pointer =

&i;char str[10]

="123"

;char

*i_pointer = str;

// c語言種的字串是陣列的形式,而陣列的名稱可以表示其位址,故這裡不需要加位址符

(3)*int i;

讀作:指向int型別資料的指標變數i。注意,int *、float *、char * 是3種不同的資料型別。

(4)指標變數種只能存放位址,不能將任何的 int、float、char等型別的資料賦值給它。

2.4 兩個運算子

(1)& 取址運算子。&a表示a的位址。

(2)* 指標運算子(間接訪問符)。*p表示指標變數p所指向的物件。

C語言中精華 指標

這篇c語言指標學習經驗總結主要是我入職以來學習c指標過程中的點滴記錄。文件裡面就不重複書上說得很清楚的概念性東西,只把一些說得不清楚或理解起來比較費解的東西做一下講解,希望能達到以下三個目的 1.通過寫這些東西,把我腦袋中關於c的模糊的知識清晰化。2.給初轉c的同事們一點提示和幫助。3.也希望各位前...

C語言指標的理解

什麼是指標?指標也是一種變數,存放的是某塊記憶體的位址。我們知道,記憶體可以理解為是按位元組被分割成若干塊的,每一位元組都對應著乙個編號,並且這些編號從小到大依次排列,這個編號就是它的位址,獨一無二,而指標變數中的值就是這些編號 例如如下 的結果 include include int main 這...

C語言指標的理解

include intmain int p1 2 p2 2 p3,p4,p5 宣告2個陣列指標,和3個普通指標 p1 arr 記住p1是陣列指標,是指向陣列的 printf d n p1 0 輸出陣列裡的第乙個元素 p1 指標自增,自增按陣列單位自增,這裡看成一維陣列的話,乙個陣列單位就是3,相當於...