亚洲综合图片区自拍_思思91精品国产综合在线观看_一区二区三区欧美_欧美黑人又粗又大_亚洲人成精品久久久久桥本

C語言中指針數(shù)組和數(shù)組指針的區(qū)別

2023-08-17 17:26:32 來源:知微之見


(資料圖)

前言

指針和數(shù)組之間存在著緊密的關(guān)系。在本文中,我們將探討指針和數(shù)組的關(guān)系、指針?biāo)阈g(shù)和數(shù)組遍歷、多維數(shù)組與指針以及指針數(shù)組和數(shù)組指針。

一、人物簡(jiǎn)介

第一位閃亮登場(chǎng),有請(qǐng)今后會(huì)一直教我們C語言的老師 —— 自在。第二位上場(chǎng)的是和我們一起學(xué)習(xí)的小白程序猿 —— 逍遙。

二、指針和數(shù)組的關(guān)系

在C語言中,數(shù)組名是指向數(shù)組首元素的指針。示例代碼:
#include < stdio.h >int main() {    int arr[5] = {1, 2, 3, 4, 5};    int *ptr = arr; // 數(shù)組名作為指針使用        // 使用指針訪問數(shù)組元素    printf("ptr指向 %d n", *ptr);    return 0;}
在上述示例中,我們將數(shù)組名arr賦給指針ptr,并使用*ptr訪問數(shù)組的第一個(gè)元素。輸出結(jié)果
ptr指向 1

三、指針?biāo)阈g(shù)和數(shù)組遍歷

指針?biāo)阈g(shù)允許我們通過增加或減少指針的值來訪問數(shù)組中的不同元素。通過改變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ù)訪問數(shù)組元素    for(int i = 0; i < 5; i++) {        printf("ptr指向 %d n", *(ptr + i));    }    return 0;}
輸出結(jié)果
ptr指向 1ptr指向 2ptr指向 3ptr指向 4ptr指向 5

四、多維數(shù)組與指針

C語言中支持多維數(shù)組,我們同樣可以使用指針來訪問多維數(shù)組的元素。示例代碼:
#include < stdio.h >int main() {    int arr[3][2] = {{1, 2}, {3, 4}, {5, 6}};    int (*ptr)[2] = arr;    // 使用指針訪問多維數(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。通過使用指針?biāo)阈g(shù)和雙重指針解引用,訪問了多維數(shù)組中的每個(gè)元素。輸出結(jié)果
1 23 45 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)元素。然后,我們通過*arr2[i]解引用指針數(shù)組中的每個(gè)元素,并打印出其值。數(shù)組指針arr3是一個(gè)指向包含5個(gè)整型元素的數(shù)組的指針。我們通過arr3 = &arr1將數(shù)組指針指向arr1數(shù)組。然后,通過(*arr3)[i]訪問數(shù)組指針?biāo)赶虻臄?shù)組中的每個(gè)元素,并打印出其值。輸出結(jié)果
指針數(shù)組中的元素:1 2 3 4 5數(shù)組指針指向的數(shù)組中的元素:1 2 3 4 5

小結(jié)

通過這篇文章,我們學(xué)會(huì)了

1、利用指針訪問和遍歷數(shù)組

2、指針數(shù)組和數(shù)組指針的區(qū)別

標(biāo)簽:

上一篇:C語言中指針的基本概念和用法
下一篇:最后一頁