0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

C语言中数组的用法

CHANBAEK 来源:工控小新 作者:工控小新 2023-11-24 17:48 次阅读

C语言的数组是一种数据结构,它可以存储多个相同类型的数据,例如整数,字符,浮点数等。数组的每个元素都有一个索引,用来表示它在数组中的位置。数组的索引从0开始,也就是说,数组的第一个元素的索引是0,第二个元素的索引是1,以此类推。

图片

C 语言中有两种类型的数组:静态数组和动态数组。静态数组是在编译时声明并分配内存空间的数组,它的大小是固定的。动态数组是在运行时手动分配内存空间的数组,它的大小是可变的。静态数组的生命周期与作用域相关,而动态数组的生命周期由程序员控制。在使用动态数组时,需要注意合理地分配和释放内存,以避免内存泄漏和访问无效内存的问题。

数组的用法有以下几点:

  • 定义数组时,需要指定数组的类型,名称,和长度,例如,int a[10];表示定义了一个名为a的整数数组,它的长度是10,也就是说,它可以存储10个整数。
  • 赋值数组时,需要使用大括号{}包含数组的元素,每个元素之间用逗号分隔,例如,int a[10] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};表示给数组a赋值为1到10的整数序列。
  • 访问数组时,需要使用方括号[]包含数组的索引,例如,a[0]表示访问数组a的第一个元素,它的值是1,a[9]表示访问数组a的最后一个元素,它的值是10。
  • 修改数组时,需要使用赋值运算符=给数组的某个元素赋值,例如,a[0] = 100;表示把数组a的第一个元素的值修改为100,a[9] = 0;表示把数组a的最后一个元素的值修改为0。

要声明一个静态数组,可以使用以下语法:

数据类型 数组名[数组长度];

例如:

int arr[10]; //声明一个长度为 10 的整型数组

要声明一个动态数组,可以使用以下语法:

数据类型 *数组名;
数组名 = (数据类型 *)malloc(数组长度 * sizeof(数据类型));

例如:

int *arr; //声明一个整型指针


arr = (int *)malloc(10 * sizeof(int)); //为指针分配 10 个整型大小的内存空间

要访问或修改数组中的元素,可以使用以下语法:

数组名[索引]

例如:

arr[0] = 1; //将第一个元素赋值为 1


printf("%dn", arr[9]); //打印最后一个元素的值

要使用数组作为函数参数,可以使用以下语法:

void 函数名(数据类型 *参数名);

或者

void 函数名(数据类型 参数名[数组长度]);

或者

void 函数名(数据类型 参数名[]);

例如:

void printArray(int *arr); //定义一个打印整型指针的函数


void printArray(int arr[10]); //定义一个打印长度为 10 的整型数组的函数


void printArray(int arr[]); //定义一个打印未定义长度的整型数组的函数

要调用这些函数,可以使用以下语法:

函数名(实际参数);

例如:

printArray(arr); //调用打印函数,并传递 arr 作为实际参数

下面是一个完整的例子,演示了如何使用静态和动态数组,并将它们作为函数参数传递:

#include < stdio.h >
#include < stdlib.h >
//定义一个打印整型指针的函数
void printArray(int *arr, int len)
{
    int i;
    for (i = 0; i < len; i++) {
        printf("%d ", arr[i]);
    }
    printf("n");
}
int main()
{
    int i;
    //声明并初始化一个静态数组
    int static_arr[5] = {1, 2, 3, 4, 5};
    //声明并分配一个动态数组
    int *dynamic_arr;
    dynamic_arr = (int *)malloc(5 * sizeof(int));
    //给动态数组赋值
    for (i = 0; i < 5; i++)
{


        dynamic_arr[i] = i + 6;
    }
    //打印两个数组
    printArray(static_arr, 5);
    printArray(dynamic_arr, 5);
    //释放动态数组
    free(dynamic_arr);
    return 0;
}

输出结果为:

图片

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 内存
    +关注

    关注

    8

    文章

    2998

    浏览量

    73875
  • C语言
    +关注

    关注

    180

    文章

    7597

    浏览量

    136147
  • 函数
    +关注

    关注

    3

    文章

    4304

    浏览量

    62420
  • 数据结构
    +关注

    关注

    3

    文章

    573

    浏览量

    40090
  • 数组
    +关注

    关注

    1

    文章

    414

    浏览量

    25906
收藏 人收藏

    评论

    相关推荐

    C语言中数组和结构体的内存表示和布局

    C语言中数组和结构体都可以代表一块内存,但为什么结构体可以直接赋值,而数组不可以?这个问题涉及到C语言
    发表于 08-28 10:54 1462次阅读

    [推荐][讨论]单片机的C语言中数组用法

    问题。数组与普通变量一样,也必须先定义,后使用。数组C51语言的地位举足轻重,因此深入地了解数组是很有必要的。下面就对
    发表于 03-12 10:24

    C语言中怎么判断数组元素的个数

    C语言中怎么判断数组元素的个数,如数组:int array[]={45,56,76,234,1,34,23,2,3};
    发表于 05-26 11:49

    C语言中atoi()函数的用法 相关资料分享

    C语言中atoi()函数的用法
    发表于 07-01 08:12

    如何使用单片机的C语言中数组

    如何使用单片机的C语言中数组
    发表于 10-15 08:59

    单片机C语言中数组用法

    数组与普通变量一样,也必须先定义,后使用。数组C51语言的地位举足轻重,因此深入地了解数组是很有必要的。下面就对
    发表于 10-10 11:33 1.5w次阅读

    单片机的C语言中数组用法

    发表于 04-30 11:28 18次下载

    C语言中的#和##的用法

    和conStr的参数,并且宏conStr和toString中均含有#或者##符号,所以A不能被解引用。导致不符合预期的情况出现。 3.2 解决方案 结果: 责任编辑:xj 原文标题:C语言中#和##的用法 文章出处:【微信公众号
    的头像 发表于 12-06 09:34 7.6w次阅读
    <b class='flag-5'>C</b><b class='flag-5'>语言中</b>的#和##的<b class='flag-5'>用法</b>

    C语言中的typedef的用法

    在以前的学习中对于C语言中typedef和define的认识是,#define是宏,作用是简单的替换,而typedef也是替换,只不过比define高级的是在替换的时候会进行语法检查。但是后来
    发表于 01-13 13:36 0次下载
    <b class='flag-5'>C</b><b class='flag-5'>语言中</b>的typedef的<b class='flag-5'>用法</b>

    C语言中的char数组和char指针有什么区别?

    让我们通过下面的例子,来了解 C语言中字符数组和字符指针之间的区别。
    的头像 发表于 01-29 16:35 2633次阅读

    C语言中数组空间动态开辟

    C语言中数组空间动态开辟 在C语言中,必不可少的需要使用到数组,通常为了动态的开辟
    的头像 发表于 02-10 12:42 2072次阅读

    C语言中数组在内存中如何表示

    C语言中数组在内存中是怎样表示的,今天就给大家聊聊这个话题。
    的头像 发表于 02-15 14:35 896次阅读
    <b class='flag-5'>C</b><b class='flag-5'>语言中</b><b class='flag-5'>数组</b>在内存中如何表示

    C语言中什么是指针数组

    C语言中一个数组,若其元素均为指针类型数据,称为指针数组,也就是说,指针数组中的每一个元素都存放一个地址,相当于一个指针变量。
    的头像 发表于 03-10 15:26 1662次阅读

    C语言如何创建数组

    用法和注意事项。 要创建一个数组,首先需要确定数组的数据类型和大小。C语言中的数据类型包括基本数据类型(如整数、浮点数、字符等)以及派生数据
    的头像 发表于 11-24 10:08 1733次阅读

    c语言中数组怎么定义

    C语言中数组是一种用来存储相同类型元素的数据结构。它可以存储多个元素,并通过一个共同的名称来引用这些元素。数组是一种很重要的数据结构,可以用于解决很多实际的问题。 在
    的头像 发表于 11-24 10:11 2919次阅读