逍遥自在学C语言 | 指针和数组的关联

这篇具有很好参考价值的文章主要介绍了逍遥自在学C语言 | 指针和数组的关联。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

前言

指针和数组之间存在着紧密的关系。在本文中,我们将探讨指针和数组的关系、指针算术和数组遍历、多维数组与指针以及指针数组和数组指针。

一、人物简介

  • 第一位闪亮登场,有请今后会一直教我们C语言的老师 —— 自在。

逍遥自在学C语言 | 指针和数组的关联

  • 第二位上场的是和我们一起学习的小白程序猿 —— 逍遥。

逍遥自在学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.toymoban.com/news/detail-492119.html

到了这里,关于逍遥自在学C语言 | 指针和数组的关联的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 逍遥自在学C语言 | 枚举的那些事儿

    在C语言中,枚举是一种方便组织和表示一组相关常量的工具。枚举类型有助于提高代码的可读性和可维护性。本文将介绍C语言枚举的基本概念、语法和用法,以及一些高级技巧。 第一位闪亮登场,有请今后会一直教我们C语言的老师 —— 自在。 第二位上场的是和我们一起学

    2024年02月08日
    浏览(44)
  • 逍遥自在学C语言 | for循环详解

    C语言中的循环结构时, for 循环是最常用的一种。它允许重复执行一段代码,直到满足特定条件为止。 本文将详细介绍 for 循环的用法,并提供相关的可编译运行的C代码示例。 第一位闪亮登场,有请今后会一直教我们C语言的老师 —— 自在。 第二位上场的是和我们一起学习

    2024年02月08日
    浏览(39)
  • 逍遥自在学C语言 | 赋值运算符

    在C语言中,赋值运算符用于将一个值赋给变量 这个过程分为两个步骤: 计算赋值运算符右侧的表达式 将结果赋给左侧的变量。 C语言提供了多个不同的赋值运算符,包括基本的赋值运算符、复合赋值运算符以及条件赋值运算符等 第一位闪亮登场,有请今后会一直教我们C语

    2023年04月24日
    浏览(55)
  • 逍遥自在学C语言 | 函数初级到高级解析

    函数是C语言中的基本构建块之一,它允许我们将代码组织成可重用、模块化的单元。 本文将逐步介绍C语言函数的基础概念、参数传递、返回值、递归以及内联函数和匿名函数。 第一位闪亮登场,有请今后会一直教我们C语言的老师 —— 自在。 第二位上场的是和我们一起学

    2024年02月11日
    浏览(37)
  • 逍遥自在学C语言 | 函数初级到高级解析

    函数是C语言中的基本构建块之一,它允许我们将代码组织成可重用、模块化的单元。 本文将逐步介绍C语言函数的基础概念、参数传递、返回值、递归以及内联函数和匿名函数。 第一位闪亮登场,有请今后会一直教我们C语言的老师 —— 自在。 第二位上场的是和我们一起学

    2024年02月12日
    浏览(43)
  • 逍遥自在学C语言 | 条件控制的正确使用姿势

    在C语言中,有三种条件判断结构:if语句、if-else语句和switch语句。 第一位闪亮登场,有请今后会一直教我们C语言的老师 —— 自在。 第二位上场的是和我们一起学习的小白程序猿 —— 逍遥。 基本语法 代码示例 运行结果 基本语法 代码示例 运行结果 代码示例 在这个示例中

    2024年02月03日
    浏览(54)
  • 逍遥自在学C语言 | 揭开while循环的神秘面纱

    循环是一种重要的控制结构,可以使程序重复执行一段代码,直到满足特定条件为止。 在C语言中,while和do-while是两种常用的循环结构,本文将详细介绍这两种循环的用法。 第一位闪亮登场,有请今后会一直教我们C语言的老师 —— 自在。 第二位上场的是和我们一起学习的

    2024年02月06日
    浏览(60)
  • 逍遥自在学C语言 | 位运算符~的高级用法

    在上一篇文章中,我们介绍了 ^ 运算符的高级用法,本篇文章,我们将介绍 ~ 运算符的一些高级用法。 第一位闪亮登场,有请今后会一直教我们C语言的老师 —— 自在。 第二位上场的是和我们一起学习的小白程序猿 —— 逍遥。 我们可以利用负数的补码性质,来获得一个 正

    2023年04月13日
    浏览(44)
  • 逍遥自在学C语言 | 位运算符^的高级用法

    在上一篇文章中,我们介绍了 | 运算符的高级用法,本篇文章,我们将介绍 ^ 运算符的一些高级用法。 第一位闪亮登场,有请今后会一直教我们C语言的老师 —— 自在。 第二位上场的是和我们一起学习的小白程序猿 —— 逍遥。 两个相同的数,异或结果为0 第一次的 a ^= b 等

    2023年04月12日
    浏览(47)
  • 逍遥自在学C语言 | 位运算符&的高级用法

    在上一篇文章中,我们介绍了 运算符的基础用法,本篇文章,我们将介绍 运算符的一些高级用法。 第一位闪亮登场,有请今后会一直教我们C语言的老师 —— 自在。 第二位上场的是和我们一起学习的小白程序猿 —— 逍遥。 位掩码是一种用于按位操作的技术 它通过使用一

    2023年04月10日
    浏览(51)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包