前言
指針和數(shù)組之間存在著緊密的關(guān)系。在本文中,我們將探討指針和數(shù)組的關(guān)系、指針?biāo)阈g(shù)和數(shù)組遍歷、多維數(shù)組與指針以及指針數(shù)組和數(shù)組指針。
一、人物簡(jiǎn)介
- 第一位閃亮登場(chǎng),有請(qǐng)今后會(huì)一直教我們C語(yǔ)言的老師 —— 自在。
- 第二位上場(chǎng)的是和我們一起學(xué)習(xí)的小白程序猿 —— 逍遙。
二、指針和數(shù)組的關(guān)系
-
在C語(yǔ)言中,數(shù)組名是指向數(shù)組首元素的指針。
-
示例代碼:
#include <stdio.h>
int main() {
int arr[5] = {1, 2, 3, 4, 5};
int *ptr = arr; // 數(shù)組名作為指針使用
// 使用指針訪問(wèn)數(shù)組元素
printf("ptr指向 %d \n", *ptr);
return 0;
}
-
在上述示例中,我們將數(shù)組名
arr
賦給指針ptr
,并使用*ptr
訪問(wèn)數(shù)組的第一個(gè)元素。 -
輸出結(jié)果
ptr指向 1
三、指針?biāo)阈g(shù)和數(shù)組遍歷
- 指針?biāo)阈g(shù)允許我們通過(guò)增加或減少指針的值來(lái)訪問(wèn)數(shù)組中的不同元素。
- 通過(guò)改變
ptr
的值,實(shí)現(xiàn)對(duì)數(shù)組的遍歷 - 示例代碼:
#include <stdio.h>
int main() {
int arr[5] = {1, 2, 3, 4, 5};
int *ptr = arr;
// 使用指針?biāo)阈g(shù)訪問(wèn)數(shù)組元素
for (int i = 0; i < 5; i++) {
printf("ptr指向 %d \n", *(ptr + i));
}
return 0;
}
- 輸出結(jié)果
ptr指向 1
ptr指向 2
ptr指向 3
ptr指向 4
ptr指向 5
四、多維數(shù)組與指針
-
C語(yǔ)言中支持多維數(shù)組,我們同樣可以使用指針來(lái)訪問(wèn)多維數(shù)組的元素。
-
示例代碼:
#include <stdio.h>
int main() {
int arr[3][2] = {{1, 2}, {3, 4}, {5, 6}};
int (*ptr)[2] = arr;
// 使用指針訪問(wèn)多維數(shù)組元素
for (int i = 0; i < 3; i++) {
for (int j = 0; j < 2; j++) {
printf("%d ", *(*(ptr + i) + j));
}
printf("\n");
}
return 0;
}
-
我們定義了一個(gè)二維數(shù)組
arr
,并將其賦給指針ptr
。 -
通過(guò)使用指針?biāo)阈g(shù)和雙重指針解引用,訪問(wèn)了多維數(shù)組中的每個(gè)元素。
-
輸出結(jié)果
1 2
3 4
5 6
五、指針數(shù)組和數(shù)組指針
- 指針數(shù)組是一個(gè)數(shù)組,其元素都是指針類型;
- 數(shù)組指針是一個(gè)指針,指向一個(gè)數(shù)組。
- 示例代碼:
#include <stdio.h>
int main() {
int arr1[] = {1, 2, 3, 4, 5}; // 數(shù)組
int *arr2[5]; // 指針數(shù)組
int (*arr3)[5]; // 數(shù)組指針
int i;
// 初始化指針數(shù)組
for (i = 0; i < 5; i++) {
arr2[i] = &arr1[i];
}
// 打印指針數(shù)組中的元素
printf("指針數(shù)組中的元素:\n");
for (i = 0; i < 5; i++) {
printf("%d ", *arr2[i]);
}
// 初始化數(shù)組指針
arr3 = &arr1;
// 打印數(shù)組指針指向的數(shù)組中的元素
printf("\n數(shù)組指針指向的數(shù)組中的元素:\n");
for (i = 0; i < 5; i++) {
printf("%d ", (*arr3)[i]);
}
return 0;
}
-
我們定義了一個(gè)整型數(shù)組
arr1
,一個(gè)指針數(shù)組arr2
和一個(gè)數(shù)組指針arr3
。 -
指針數(shù)組
arr2
是一個(gè)包含5個(gè)元素的數(shù)組,每個(gè)元素都是一個(gè)指向整型變量的指針。 -
我們使用
arr2[i] = &arr1[i]
將指針數(shù)組的每個(gè)元素指向arr1
數(shù)組的對(duì)應(yīng)元素。 -
然后,我們通過(guò)
*arr2[i]
解引用指針數(shù)組中的每個(gè)元素,并打印出其值。 -
數(shù)組指針
arr3
是一個(gè)指向包含5個(gè)整型元素的數(shù)組的指針。 -
我們通過(guò)
arr3 = &arr1
將數(shù)組指針指向arr1
數(shù)組。 -
然后,通過(guò)
(*arr3)[i]
訪問(wèn)數(shù)組指針?biāo)赶虻臄?shù)組中的每個(gè)元素,并打印出其值。 -
輸出結(jié)果
指針數(shù)組中的元素:
1 2 3 4 5
數(shù)組指針指向的數(shù)組中的元素:
1 2 3 4 5
小結(jié)
通過(guò)這篇文章,我們學(xué)會(huì)了
1、利用指針訪問(wèn)和遍歷數(shù)組
2、指針數(shù)組和數(shù)組指針的區(qū)別文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-492119.html
??歡迎各位 ??點(diǎn)贊 ?收藏 ??評(píng)論,如有錯(cuò)誤請(qǐng)留言指正,非常感謝!文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-492119.html
到了這里,關(guān)于逍遙自在學(xué)C語(yǔ)言 | 指針和數(shù)組的關(guān)聯(lián)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!