目錄
- 一.使用陣列下標遍歷陣列
- 1.計算陣列元素個數
- 2.通過下標遍歷陣列
- 二.使用陣列首地址偏移遍歷陣列
- 三.使用指標遍歷陣列
- 四.猜你喜歡
零基礎 C/C++ 學習路線推薦 : C/C++ 學習目錄 >> C 語言基礎入門
一.使用陣列下標遍歷陣列
陣列中的每個元素都有一個序號,這個序號從 0 開始,稱為下標 index,例如,a[0] 表示第 1 個元素,a[3] 表示第 4 個元素,陣列是一個整體,它的記憶體是連續的,記憶體示意圖:

1.計算陣列元素個數
計算陣列元素個數示例如下:
int arr[] = {1,2,3,4,5};
int len = sizeof(arr)/sizeof(arr[0]); //正確的計算方式
int len = sizeof(arr); //錯誤的結算方式
2.通過下標遍歷陣列
/************************************************************************/
//@Author:猿說編程
//@Blog(個人博客地址): www.codersrc.com
//@File:C語言教程 - C語言 使用指標遍歷陣列
//@Time:2021/06/18 08:00
//@Motto:不積跬步無以至千里,不積小流無以成江海,程式人生的精彩需要堅持不懈地積累!
/************************************************************************/
#include<stdlib.h>
#include<stdio.h>
void main()
{
int arr[5] = { 10,20,30,40,50 };
int len = sizeof(arr) / sizeof(arr[0]);//計算陣列長度
for (int i = 0; i < len; i++)
{
printf("根據下標索引值回圈:陣列下標:%d 對應的元素地址是: %d 對應的元素的值是: %d\n", i,&arr[i],arr[i]);
}
system("pause");
}
/*
輸出:
根據下標索引值回圈:陣列下標:0 對應的元素地址是: 1278408520 對應的元素的值是: 10
根據下標索引值回圈:陣列下標:1 對應的元素地址是: 1278408524 對應的元素的值是: 20
根據下標索引值回圈:陣列下標:2 對應的元素地址是: 1278408528 對應的元素的值是: 30
根據下標索引值回圈:陣列下標:3 對應的元素地址是: 1278408532 對應的元素的值是: 40
根據下標索引值回圈:陣列下標:4 對應的元素地址是: 1278408536 對應的元素的值是: 50
請按任意鍵繼續. . .
*/
二.使用陣列首地址偏移遍歷陣列
陣列是一個整體,它的記憶體是連續的,那么我們可以直接通過首地址(陣列名默認就是首地址)偏移來達到陣列遍歷的效果,記憶體示意圖:

int arr[] = {1,2,3,4,5};
int value0 = *(arr); //arr默認指向陣列的首地址,獲取陣列第一個元素的值
int value1 = *(arr + 1); //陣列首地址偏移 +1 ,獲取陣列第二個元素的值
int value2 = *(arr + 2); //陣列首地址偏移 +2 ,獲取陣列第三個元素的值
int value3 = *(arr + 3); //陣列首地址偏移 +3 ,獲取陣列第四個元素的值
當知道陣列元素地址之后,可以直接通過 * 獲取該地址對應的值,使用陣列首地址偏移遍歷陣列,示例代碼如下:
/************************************************************************/
//@Author:猿說編程
//@Blog(個人博客地址): www.codersrc.com
//@File:C語言教程 - C語言 使用指標遍歷陣列
//@Time:2021/06/18 08:00
//@Motto:不積跬步無以至千里,不積小流無以成江海,程式人生的精彩需要堅持不懈地積累!
/************************************************************************/
#include<stdlib.h>
#include<stdio.h>
void main()
{
int arr[5] = { 10,20,30,40,50 };
int len = sizeof(arr) / sizeof(arr[0]);//計算陣列長度
for (int i = 0; i < len; i++)
{
printf("根據下標索引值回圈:陣列下標:%d 對應的元素地址是: %d 對應的元素的值是: %d\n", i,arr+i,*(arr + i));
}
system("pause");
}
/*
輸出:
根據下標索引值回圈:陣列下標:0 對應的元素地址是: 1619000120 對應的元素的值是: 10
根據下標索引值回圈:陣列下標:1 對應的元素地址是: 1619000124 對應的元素的值是: 20
根據下標索引值回圈:陣列下標:2 對應的元素地址是: 1619000128 對應的元素的值是: 30
根據下標索引值回圈:陣列下標:3 對應的元素地址是: 1619000132 對應的元素的值是: 40
根據下標索引值回圈:陣列下標:4 對應的元素地址是: 1619000136 對應的元素的值是: 50
請按任意鍵繼續. . .
*/
三.使用指標遍歷陣列
使用指標遍歷陣列實際上也是通過地址偏移,和上面的陣列首地址偏移遍歷陣列類似:
- 1.首先通過指標指向一個陣列的首地址;
- 2.然后通過地址偏移,來獲取對應地址的值,當知道陣列元素地址之后,可以直接通過
*獲取該地址對應的值;
示例代碼如下:
/************************************************************************/
//@Author:猿說編程
//@Blog(個人博客地址): www.codersrc.com
//@File:C語言教程 - C語言 使用指標遍歷陣列
//@Time:2021/06/18 08:00
//@Motto:不積跬步無以至千里,不積小流無以成江海,程式人生的精彩需要堅持不懈地積累!
/************************************************************************/
#include<stdlib.h>
#include<stdio.h>
void main()
{
int arr[5] = { 10,20,30,40,50 };
int* p = arr; //定義一個空指標
int len = sizeof(arr) / sizeof(arr[0]);//計算陣列長度
//int value1 = *p++; // int value1 = arr[1];
//int value2 = *p++; // int value2 = arr[2];
//int value3 = *p++; // int value3 = arr[3];
//int value4 = *p++; // int value4 = arr[4];
for (int i = 0;i<len;i++)
{
printf("根據指標偏移回圈:陣列下標:%d 對應的元素地址是: %d 對應的元素的值是: %d\n", i, p, *p);
p++; //地址偏移+1,等價偏移到下一個元素地址
}
system("pause");
}
/*
輸出:
根據指標偏移回圈:陣列下標:0 對應的元素地址是: 663747608 對應的元素的值是: 10
根據指標偏移回圈:陣列下標:1 對應的元素地址是: 663747612 對應的元素的值是: 20
根據指標偏移回圈:陣列下標:2 對應的元素地址是: 663747616 對應的元素的值是: 30
根據指標偏移回圈:陣列下標:3 對應的元素地址是: 663747620 對應的元素的值是: 40
根據指標偏移回圈:陣列下標:4 對應的元素地址是: 663747624 對應的元素的值是: 50
請按任意鍵繼續. . .
*/
四.猜你喜歡
- 安裝 Visual Studio
- 安裝 Visual Studio 插件 Visual Assist
- Visual Studio 2008 卸載
- Visual Studio 2003/2015 卸載
- C 語言格式控制符/占位符
- C 語言邏輯運算子
- C 語言三目運算子
- C 語言逗號運算式
- C 語言 sizeof 和 strlen 函式區別
- C 語言 strcpy 和 strcpy_s 函式區別
- C 語言 memcpy 和 memcpy_s 區別
- C 語言 陣列定義和使用
- C 語言 陣列遍歷
- C 語言 陣列排序 – 冒泡法排序
- C 語言 陣列排序 – 選擇法排序
- C 語言 陣列排序 – 插入法排序
- C 語言 陣列排序 – 快速法排序
- C 語言 陣列下標越界
- C 語言 陣列記憶體溢位
- C 語言 陣列下標越界和記憶體溢位區別
- C 語言 二維陣列定義和使用
- C 語言 二維陣列行數和列數計算
- C 語言 指標宣告和定義
- C 語言 指標 p++ / p–
- C 語言 p++/(p)++/_(p++)/_p++
- C 語言 使用指標遍歷陣列
未經允許不得轉載:猿說編程 ? C 語言 使用指標遍歷陣列
本文由博客 - 猿說編程 猿說編程 發布!
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/295936.html
標籤:C
上一篇:C語言 *p++/*(p)++/*(p++)/*p++ - C語言零基礎入門教程
下一篇:C語言----陣列(基礎篇八)
