C语言初阶之数组详细介绍

C语言初阶之数组详细介绍

数组的概念

在C语言中,数组是一种数据结构,是一系列相同类型的数据元素组成的集合。这些数据元素可以通过它们的下标进行访问,下标通常是整数。

数组的声明和初始化

数组的声明和初始化的语法格式如下:

type arrayName[arraySize];
type arrayName[arraySize] = {value1, value2, ..., valueN};

其中,type表示数组中元素的类型,arraySize表示数组中元素的个数,arrayName表示数组的名称。如果需要初始化数组元素,可以在声明时使用花括号{}括住元素的初始值,用逗号,隔开。

示例1-1:声明和初始化一个整型数组

int scores[5];
float prices[3] = {1.2, 3.4, 5.6};

数组的访问和修改

对于一个已经声明和初始化的数组,我们可以使用下标操作符[]来访问和修改数组元素。

下标从0开始,因此第一个元素的下标是0,最后一个元素的下标为数组大小减1。

示例1-2:访问和修改数组元素

int scores[5] = {75, 82, 68, 91, 63};
// 访问数组元素
printf("第一个元素:%d\n", scores[0]); // 输出:75
printf("最后一个元素:%d\n", scores[4]); // 输出:63
// 修改数组元素
scores[2] = 88;
printf("修改后的数组:");
for(int i = 0; i < 5; i++){
    printf("%d ", scores[i]); // 输出:75 82 88 91 63
}

数组的遍历

数组的遍历是指对数组中的每一个元素进行访问和处理,通常使用循环语句来实现。

示例1-3:数组遍历

int scores[5] = {75, 82, 68, 91, 63};
// 遍历数组
for(int i = 0; i < 5; i++){
    printf("%d ", scores[i]); // 输出:75 82 68 91 63
}

多维数组

多维数组是由一维数组组成的。多维数组可以被认为是一张表格,其中每个元素都是一个数据项,并且每个数据项都是一个一维数组的元素。

多维数组的声明和初始化的语法格式如下:

type arrayName[arraySize1][arraySize2]...[arraySizeN];
type arrayName[arraySize1][arraySize2]...[arraySizeN] = {
    {value1, value2, ..., valueM},
    {value1, value2, ..., valueM},
    ...
    {value1, value2, ..., valueM}
};

其中,type表示数组中元素的类型,arraySize1arraySize2等表示数组每个维度的大小,arrayName表示数组的名称。如果需要初始化多维数组元素,需要使用嵌套的花括号{{}}

示例1-4:声明和初始化一个二维数组

int matrix[2][3] = {{1, 2, 3}, {4, 5, 6}};

访问和修改多维数组的元素与一维数组相似,使用多个[]操作符。

示例1-5:访问和修改二维数组元素

int matrix[2][3] = {{1, 2, 3}, {4, 5, 6}};
// 访问二维数组元素
printf("%d\n", matrix[0][1]); // 输出:2
// 修改二维数组元素
matrix[1][2] = 9;
// 遍历二维数组
for(int i = 0; i < 2; i++){
    for(int j = 0; j < 3; j++){
        printf("%d ", matrix[i][j]); // 输出:1 2 3 4 5 9
    }
}

数组的长度

在C语言中,数组是一种静态数据结构,一旦声明和初始化后,数组的大小是不会改变的。可以使用sizeof运算符来求出一个数组所占的字节数,由此计算出数组的元素个数。

示例1-6:求取数组的长度

int scores[5] = {75, 82, 68, 91, 63};
// 求取数组大小和元素个数
int size = sizeof(scores); // 20
int count = size / sizeof(scores[0]); // 5
printf("数组大小:%d\n", size);
printf("数组元素个数:%d\n", count);

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:C语言初阶之数组详细介绍 - Python技术站

(0)
上一篇 2023年6月25日
下一篇 2023年6月25日

相关文章

  • Android TabWidget切换卡的实现应用

    Android TabWidget切换卡的实现应用攻略 简介 Android TabWidget是一种常用的用户界面元素,用于实现多个选项卡之间的切换。本攻略将详细介绍如何在Android应用中实现TabWidget的使用。 步骤 步骤1:准备工作 在Android项目中,首先需要确保已经添加了TabWidget的依赖库。在项目的build.gradle文件…

    other 2023年9月7日
    00
  • 使用log4j2自定义配置文件位置和文件名(附log4j2.xml配置实例)

    使用log4j2自定义配置文件位置和文件名需要进行以下步骤: 创建自定义配置文件首先需要创建一个log4j2的配置文件,可以命名为log4j2.xml或者其他名称,假设我们命名为mylog.xml。在配置文件中需要定义日志输出方式、日志级别、日志文件的存储路径、文件名等信息。 将自定义配置文件放置到指定目录将自定义的配置文件mylog.xml放置到项目的根目…

    other 2023年6月25日
    00
  • Android NestedScrolling嵌套滚动的示例代码

    Android NestedScrolling嵌套滚动的示例代码攻略 嵌套滚动是指在一个滚动容器内部,可以嵌套另一个滚动容器,并且两者可以同时进行滚动。Android提供了NestedScrolling机制来实现这种嵌套滚动的效果。下面是一个详细的攻略,包含了示例代码和说明。 步骤1:在XML布局文件中定义嵌套滚动的容器 首先,在XML布局文件中定义一个嵌套…

    other 2023年7月28日
    00
  • Android中加载网络资源时的优化可使用(线程+缓存)解决

    当Android应用程序需要加载网络资源时,避免阻塞UI线程,优化性能和用户体验是非常重要的。在这种情况下,一个很好的解决方案是使用线程加载网络请求和缓存这些资源。以下是完整攻略的步骤说明: 1. 使用线程加载网络资源 1.1. 使用AsyncTask类 Android提供了AsyncTask类用于在后台线程执行任务并在主线程更新UI。AsyncTask让线…

    other 2023年6月25日
    00
  • Windows 如何完整备份驱动

    Windows 如何完整备份驱动 在日常使用Windows系统中,出现设备故障时,重新安装系统无法解决问题时,备份驱动是非常有用的。备份驱动可以保证您在系统崩溃后还原设备的驱动程序,节省您的时间和精力。在本文中,我们将讨论两种备份驱动的方法。 方法一:使用Windows内置功能备份驱动 Windows系统内置了备份驱动的功能,您可以轻松地使用此功能备份和恢复…

    其他 2023年3月28日
    00
  • js字母大小写转换实现方法总结

    JS字母大小写转换实现方法总结 在JavaScript中,我们可以使用不同的方法来实现字母的大小写转换。下面是两种常见的方法示例: 1. 使用toUpperCase()和toLowerCase()方法 这种方法使用JavaScript内置的toUpperCase()和toLowerCase()方法来实现字母的大小写转换。下面是一个示例代码: // 将字符串中…

    other 2023年8月16日
    00
  • flash创建对象怎么限定时间?

    以下是使用标准的Markdown格式文本,详细讲解如何在Flash中创建对象并限定时间的完整攻略: Flash创建对象并限定时间 在Flash中,可以使用定时器(Timer)来限定对象的创建时间。定时器可以在指定的时间间隔后触发事件,从而实现对象的延迟创建。 步骤1:导入定时器类 首先,需要导入flash.utils包中的Timer类,以便在代码中使用定时器…

    other 2023年10月15日
    00
  • Js类的构建与继承案例详解

    让我们详细探讨一下“Js类的构建与继承案例详解”。 标题 Js类的构建与继承案例详解 简介 JavaScript是一种非常强大的语言,它支持面向对象编程。在JavaScript中,我们可以使用类和继承来创建代码,使其具有更好的可读性和可扩展性。在本文中,我们将讲解如何构建JavaScript类和实现类的继承。 JavaScript类的构建 JavaScrip…

    other 2023年6月26日
    00
合作推广
合作推广
分享本页
返回顶部