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