C語言陣列知識點

2021-08-19 21:45:56 字數 1379 閱讀 5295

指標陣列、陣列指標

指標陣列:指標陣列是陣列,是乙個存放指標的陣列。

例:

int *arr[5]
陣列指標:是有能力指向陣列的指標。

例:

int (*p)[5] p//先和*結合,說明p是乙個指標變數,然後指標指向的是乙個大小為10個整型的陣列。所以p是乙個指標,指向乙個陣列,叫陣列指標。
分辨陣列or指標:由離其最近的符號的優先順序決定型別。

陣列指標的使用:

例:

int arr[10]=;

arr;//表示陣列首元素的位址

&arr;//表示陣列的位址

printf(「%p\n」, arr);//40

printf(「%p\n」, arr+1);//4

printf(「%p\n」, &arr+1);//加上整個陣列的大小 +40

結果的不同是因為陣列的位址和陣列首元素位址值是相同的,但是意義不同。

int  (*p2) [10]
為了更深層次的了解陣列指標和指標陣列:

int arr[5]; // 指向有5個元素的整型陣列

int *parr1 [5]; //指向有5個元素的整型指標陣列

int (*parr2) [5]; //指向有5個元素的整型陣列指標

int (*parr3[5])[5];//指向5個有5個陣列指標元素的陣列指標

指標和陣列的定義、宣告

定義是不存在的時候要讓他存在,

宣告是不知道的讓他知道(定義開闢空間,而宣告並不開闢空間)

陣列引數、指標引數

1. 任何陣列在傳參時降維都會變成指標。

2. 降維是為了節省空間開銷,因為會形成臨時變數。

3. 任何維的陣列傳參必須傳首元素位址和元素個數。

函式指標

例:

#includevoid test()//通常函式名是該函式的位址

int main()

有趣的**:

( * ( void ( * )( )) 0 )( ) // 函式呼叫

函式指標陣列、函式指標的陣列指標

定義乙個函式指標陣列:

int (*parr1[5]) ( )
指向函式指標陣列的指標:首先指向函式指標陣列的指標是乙個指標,其次這個指標指向陣列,最後陣列的元素都是函式指標

如何定義:

void test (const char *str )

int main()

C語言知識點 6 陣列

1 一維陣列的初始化 inta 5 合法 inta 5 合法 inta 合法,常考,後面決定前面的大小!inta 5 不合法,賦值的個數多餘陣列的個數了 2 一維陣列的定義 int a 5 注意這個地方有乙個重要考點,定義時陣列的個數不是變數一定是常量。int a 5 合法,最正常的陣列 int a...

C語言知識點4 陣列

1 同一陣列中,資料的資料型別必須相同。2 定義 型別說明符 陣列名 整型常量表示式 例 int a 4 3 陣列 array 也是一種資料型別,屬於構造資料型別,也稱作 匯出型別 其他基本資料型別有 int float double char。4 陣列名代表陣列在記憶體中的首位址,是乙個位址常量 ...

c語言 知識點

遞迴方法 遞迴相比迴圈時間上快些,但是 遞迴比較占用空間,如果遞迴的次數超過十萬次後會導致資源占用完畢 標準的 優化技巧 消除迴圈 函式迴圈 函式 就地擴充套件 公共子表示式消除 改進暫存器分配 省略執行時對陣列邊界的檢查 迴圈不變數 移動 操作符長度消減 把指數操作符轉變為乘法操作 把乘法操作變為...