【C 语言】数组 ( 数组指针 | 数组指针定义 | 使用 数组类型* 定义数组指针 )

举报
韩曙亮 发表于 2022/01/12 22:23:07 2022/01/12
【摘要】 文章目录 总结一、使用 数组类型* 定义数组指针二、完整代码示例 总结 typedef int(ArrayType)[3]; ArrayType *p = NULL; 12...

总结

    typedef int(ArrayType)[3];
    ArrayType *p = NULL;

  
 
  • 1
  • 2




一、使用 数组类型* 定义数组指针



数组类型指针 就是 定义一个指针 , 指向数组首地址 ;


使用 数组类型* 定义数组指针 ,

首先 , 定义数组类型 别名 ,

    typedef int(ArrayType)[3];

  
 
  • 1

然后 , 使用别名类型 , 声明数组变量 ,

    ArrayType array2 = {0};

  
 
  • 1

最后 , 声明一个指针 , 将 array2 变量地址赋值给该指针 , 指针指向的数据类型为 int[3] 数组类型的变量 array2 ;

    ArrayType *p = NULL;
    p = &array2;

  
 
  • 1
  • 2

验证上述 定义的数组指针 :

为 数组元素 赋值 ,

    // 为数组赋值
    int i = 0;
    for(i = 0; i < 3; i++)
    {
        array2[i] = i + 1;
    }

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

使用 数组指针 , 打印数组元素内容 :

    // 使用 数组指针 访问数组中的值
    for(i = 0; i < 3; i++)
    {
        printf("%d\n", (*p)[i]);
    }

  
 
  • 1
  • 2
  • 3
  • 4
  • 5




二、完整代码示例



代码示例 :

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int main()
{
    // 指针数组 , 数组元素是指针
    char *array = {"12", "ab", "34"};

    // 数组指针 , 使用指针变量指向数组

    // 使用 数组别名 定义数组指针

    // 首先 , 定义数组类型 别名
    typedef int(ArrayType)[3];

    // 然后 , 使用别名类型 , 声明数组变量
    ArrayType array2 = {0};

    // 最后 , 声明一个指针 , 将 array2 变量地址赋值给该指针
    // 指针指向的数据类型为 int[3] 数组类型的变量 array2
    ArrayType *p = NULL;
    p = &array2;


    // 为数组赋值
    int i = 0;
    for(i = 0; i < 3; i++)
    {
        array2[i] = i + 1;
    }

    // 使用 数组指针 访问数组中的值
    for(i = 0; i < 3; i++)
    {
        printf("%d\n", (*p)[i]);
    }


    // 命令行不要退出
    system("pause");
    return 0;
}


  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44

执行结果 :

在这里插入图片描述

文章来源: hanshuliang.blog.csdn.net,作者:韩曙亮,版权归原作者所有,如需转载,请联系作者。

原文链接:hanshuliang.blog.csdn.net/article/details/121600641

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。