前言
指標和陣列之間存在著緊密的關系,在本文中,我們將探討指標和陣列的關系、指標算術和陣列遍歷、多維陣列與指標以及指標陣列和陣列指標,
一、人物簡介
- 第一位閃亮登場,有請今后會一直教我們C語言的老師 —— 自在,

- 第二位上場的是和我們一起學習的小白程式猿 —— 逍遙,

二、指標和陣列的關系
-
在C語言中,陣列名是指向陣列首元素的指標,
-
示例代碼:
#include <stdio.h>
int main() {
int arr[5] = {1, 2, 3, 4, 5};
int *ptr = arr; // 陣列名作為指標使用
// 使用指標訪問陣列元素
printf("ptr指向 %d \n", *ptr);
return 0;
}
-
在上述示例中,我們將陣列名
arr賦給指標ptr,并使用*ptr訪問陣列的第一個元素, -
輸出結果
ptr指向 1
三、指標算術和陣列遍歷
- 指標算術允許我們通過增加或減少指標的值來訪問陣列中的不同元素,
- 通過改變
ptr的值,實作對陣列的遍歷 - 示例代碼:
#include <stdio.h>
int main() {
int arr[5] = {1, 2, 3, 4, 5};
int *ptr = arr;
// 使用指標算術訪問陣列元素
for (int i = 0; i < 5; i++) {
printf("ptr指向 %d \n", *(ptr + i));
}
return 0;
}
- 輸出結果
ptr指向 1
ptr指向 2
ptr指向 3
ptr指向 4
ptr指向 5
四、多維陣列與指標
-
C語言中支持多維陣列,我們同樣可以使用指標來訪問多維陣列的元素,
-
示例代碼:
#include <stdio.h>
int main() {
int arr[3][2] = {{1, 2}, {3, 4}, {5, 6}};
int (*ptr)[2] = arr;
// 使用指標訪問多維陣列元素
for (int i = 0; i < 3; i++) {
for (int j = 0; j < 2; j++) {
printf("%d ", *(*(ptr + i) + j));
}
printf("\n");
}
return 0;
}
-
我們定義了一個二維陣列
arr,并將其賦給指標ptr, -
通過使用指標算術和雙重指標解參考,訪問了多維陣列中的每個元素,
-
輸出結果
1 2
3 4
5 6
五、指標陣列和陣列指標
- 指標陣列是一個陣列,其元素都是指標型別;
- 陣列指標是一個指標,指向一個陣列,
- 示例代碼:
#include <stdio.h>
int main() {
int arr1[] = {1, 2, 3, 4, 5}; // 陣列
int *arr2[5]; // 指標陣列
int (*arr3)[5]; // 陣列指標
int i;
// 初始化指標陣列
for (i = 0; i < 5; i++) {
arr2[i] = &arr1[i];
}
// 列印指標陣列中的元素
printf("指標陣列中的元素:\n");
for (i = 0; i < 5; i++) {
printf("%d ", *arr2[i]);
}
// 初始化陣列指標
arr3 = &arr1;
// 列印陣列指標指向的陣列中的元素
printf("\n陣列指標指向的陣列中的元素:\n");
for (i = 0; i < 5; i++) {
printf("%d ", (*arr3)[i]);
}
return 0;
}
-
我們定義了一個整型陣列
arr1,一個指標陣列arr2和一個陣列指標arr3, -
指標陣列
arr2是一個包含5個元素的陣列,每個元素都是一個指向整型變數的指標, -
我們使用
arr2[i] = &arr1[i]將指標陣列的每個元素指向arr1陣列的對應元素, -
然后,我們通過
*arr2[i]解參考指標陣列中的每個元素,并列印出其值, -
陣列指標
arr3是一個指向包含5個整型元素的陣列的指標, -
我們通過
arr3 = &arr1將陣列指標指向arr1陣列, -
然后,通過
(*arr3)[i]訪問陣列指標所指向的陣列中的每個元素,并列印出其值, -
輸出結果
指標陣列中的元素:
1 2 3 4 5
陣列指標指向的陣列中的元素:
1 2 3 4 5
小結
通過這篇文章,我們學會了
1、利用指標訪問和遍歷陣列
2、指標陣列和陣列指標的區別
??歡迎各位 ??點贊 ?收藏 ??評論,如有錯誤請留言指正,非常感謝!
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/555666.html
標籤:其他
上一篇:【python基礎】類-初識類
下一篇:返回列表
