目錄
- 一.簡介
- 1.陣列
- 2.指標
- 3.指標和陣列區別
- 二.陣列指標
- 三.猜你喜歡
零基礎 C/C++ 學習路線推薦 : C/C++ 學習目錄 >> C 語言基礎入門
一.簡介
1.陣列
陣列中的每個元素都有一個序號,這個序號從 0 開始,稱為下標index,例如,a[0] 表示第 1 個元素,a[3] 表示第 4 個元素,陣列是一個整體,它的記憶體是連續的,記憶體示意圖:

2.指標
指標很靈活,它可以指向任意型別的資料,指標的型別說明了它所指向地址空間的記憶體,以下是有效的指標宣告:
int *p; /* 一個整型的指標 */
double *p; /* 一個 double 型的指標 */
float *p; /* 一個浮點型的指標 */
char *p; /* 一個字符型的指標 */
注意:不要忘記在指標型別和變數名中間還有一個 * 號,沒有這個 * 號,只是定義了一個普通變數,這也是普通變數宣告和指標宣告的區別之一;
3.指標和陣列區別
指標和陣列區別這里不再繼續啰嗦,可以直接參考文章:指標和陣列區別
二.陣列指標
陣列指標:它實際上是一個指標,該指標指向一個陣列,
int (*arr)[5];
//由于[]的優先級比*高,因此在寫陣列指標的時候必須將*arr用括號括起來
//arr先和*結合,說明arr是一個指標變數
//這句話的意思就是:指標arr指向一個大小為5個整型的陣列,
int(*arr)[5] 表示指標 arr 指向一個大小為 5 個整型的陣列,如下圖:

示例代碼如下:
/******************************************************************************************/
//@Author:猿說編程
//@Blog(個人博客地址): www.codersrc.com
//@File:C語言教程 - C語言 陣列定義和使用
//@Time:2021/06/19 08:00
//@Motto:不積跬步無以至千里,不積小流無以成江海,程式人生的精彩需要堅持不懈地積累!
/******************************************************************************************/
//一維陣列
int a[5] = { 1, 2, 3, 4, 5 };
//步長為5的陣列指標,即陣列里有5個元素
int (*p)[5];
//把陣列a的地址賦給p,則p為陣列a的地址,則*p表示陣列a本身
p = &a;
//%p輸出地址, %d輸出十進制
//\n回車
//在C中,在幾乎所有使用陣列的運算式中,陣列名的值是個指標常量,也就是陣列第一個元素的地址,它的型別取決于陣列元素的型別,
printf("%p\n", a); //輸出陣列名,一般用陣列的首元素地址來標識一個陣列,則輸出陣列首元素地址
printf("%p\n", p); //根據上面,p為陣列a的地址,輸出陣列a的地址
printf("%p\n", *p); //*p表示陣列a本身,一般用陣列的首元素地址來標識一個陣列
printf("%p\n", &a[0]); //a[0]的地址
printf("%p\n", &a[1]); //a[1]的地址
printf("%p\n", p[0]); //陣列首元素的地址
printf("%d\n", **p); //*p為陣列a本身,即為陣列a首元素地址,則*(*p)為值,當*p為陣列首元素地址時,**p表示首元素的值1
printf("%d\n", *p[0]); //根據優先級,p[0] 表示首元素地址,則*p[0]表示首元素本身,即首元素的值1
printf("%d\n", *p[1]); //為一個絕對值很大的負數,不表示a[1]...表示什么我還不知道
//二維陣列
int a[4][5];
int (*p)[5]=a;//指標p指向一個大小為5個整型的陣列
*(p+i)是一維陣列a[i][0]的地址;
(p+2)+3表示a[2][3]地址(第一行為0行,第一列為0列);
*(*(p+2)+3)表示a[2][3]的值;
三.猜你喜歡
- 安裝 Visual Studio
- 安裝 Visual Studio 插件 Visual Assist
- Visual Studio 2008 卸載
- Visual Studio 2003/2015 卸載
- C 語言邏輯運算子
- C 語言三目運算子
- C 語言逗號運算式
- C 語言 sizeof 和 strlen 函式區別
- C 語言 strcpy 和 strcpy_s 函式區別
- C 語言 memcpy 和 memcpy_s 區別
- C 語言 陣列定義和使用
- C 語言 陣列遍歷
- C 語言 陣列下標越界
- C 語言 陣列記憶體溢位
- C 語言 陣列下標越界和記憶體溢位區別
- C 語言 二維陣列定義和使用
- C 語言 二維陣列行數和列數計算
- C 語言 指標宣告和定義
- C 語言 指標 p++ / p–
- C 語言 p++/§++/_(p++)/_p++
- C 語言 使用指標遍歷陣列
- C 語言 指標和陣列區別
- C 語言 陣列指標
- C 語言 指標陣列
未經允許不得轉載:猿說編程 ? C 語言 陣列指標
本文由博客 - 猿說編程 猿說編程 發布!
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/295941.html
標籤:C
上一篇:C語言----字符(基礎篇九)
