C語言基礎 指標與陣列

2021-07-10 21:34:03 字數 1642 閱讀 8883

一、資料的位址和通過位址訪問資料

1、基本的資料型別的位址

int a;==>&a//變數a的位址

2、陣列的位址

int a[5]; ==>&a,a,&a[0]

3、函式的入口位址

函式名 或者 &函式名

4、通過位址去訪問記憶體中的資料

通過間接訪問運算子*訪問記憶體中的資料

二、指標的基本概念

1、定義:

變數的位址稱為變數的指標。

存放指標的變數稱為指標變數,指標也是乙個變數,它儲存其他變數的位址。

【注意】每個指標變數只能指向一種特定型別的變數。

2、宣告和初始化、賦值

詳見4.c

3、使用指標訪問記憶體單元

指標前面加*,表示指標所指向的記憶體單元

4、指標變數的大小(占用記憶體空間的大小)

與指標所指向的資料型別的大小沒有關係,與作業系統的位數有關係。

指標是乙個無符號整數。

5、void  指標

void *p:通用指標,代表可以指向任意型別。

【注】使用指標訪問記憶體的方法

1、指標在宣告和賦值的時候一定要正確,明確指標到底指向誰。

2、根據指標的指向關係,畫出記憶體單元圖,找出指標所指向的記憶體單元。

三、指標與陣列(掌握)

陣列名代表陣列中第乙個元素的位址,可以將陣列名賦值給與其相同資料型別的指標。

使用陣列名訪問陣列,與使用這個指標訪問陣列,效果一樣。

四、指標與函式(掌握)

1、指標作為函式的引數,傳遞的是位址,通過位址間接訪問記憶體單元,可以修改指定的記憶體單元。

練習:1、使用函式交換兩個整型變數,呼叫函式結束後,兩個    整型變數的值真的交換了。

2、寫乙個函式sumandminus,可以同時計算2個整型變數的和與差,函式執行完畢之後,返回和與差。

參見11.c

2、陣列作為函式的引數

陣列作為函式引數,實際上需要傳遞陣列首位址,即這個引數是指標型別。

3、指標作為函式的返回值

參加13.c

五、【擴充套件】指標的運算(了解)

詳見14.c

1、加加1:加上指向的資料型別的大小。

兩個指標相加:無意義。

2、減減1:減去指向的資料型別的大小

兩個指標相減:表示兩個指標所指向的變數之間相差的元素個數(常常用在陣列中)

3、比較

兩個指標的比較,實際上是兩個指標所指向的變數的位址進行比較(兩個指標所指向的資料型別必須相同,否則比較無意義)。

六、【擴充套件】const修飾的指標(了解)

詳見15.c

1、const關鍵字

常量 (1)const 資料型別 變數名=變數初值;

(2)資料型別 const 變數名=變數初值;

【注】常量在宣告的同時必須初始化,否則無意義。

2、const修飾指標

(1)const int *a;和int const *a;

a的指向可以修改;   a指向的內容不能修改

(2)int *const a;

a的指向不能修改; a指向的內容可以修改

(3)const int * const a;

a的指向不能修改; a指向的內容也不能修改

【注】const 修飾誰,誰不能修改

C語言基礎 指標陣列與陣列指標

一 指標陣列 在這一節中我們來學習乙個陣列,這個陣列比較特殊,也比較普通。說它特殊是因為這個陣列是指標的陣列,也就是說我們有乙個陣列,這個陣列裡存放的變數型別是指標型變數 說它普通是因為陣列變數其實與其它普通變數沒有什麼區別,指標變數就是一種可以存放記憶體位址的變數,所以它們也可以被定義成一串連續的...

C語言基礎 指標與陣列

1.陣列指標 概念 指向陣列元素的指標 作用 使用陣列指標間接訪問陣列的元素 定義 int p 初始化 int a 4 int q a 定義了乙個指標變數q,賦值陣列的首位址 第乙個元素的位址 q指向了陣列的第乙個元素 int q a 0 跟上面等價陣列指標如何去訪問陣列元素 p 1 表示指向陣列的...

C與C 基礎 陣列指標與指標陣列

c與c 基礎 陣列指標與指標陣列 c與c 基礎 結構體struct和typedef struct 區別 c與c 基礎 函式 c與c 基礎 記憶體管理 陣列指標也成為行指標,陣列指標,就是乙個指標,指向乙個一維陣列。定義 int p n 優先順序高,首先說明p是乙個指標,指向乙個整型的一維陣列,這個一...