C-数组

【C语言数组 数组 阅读详情

基本概念与性质

  • C语言支持数组数据存储结构,它可以存储一个固定大小的相同类型元素的顺序集合。数组是用来存储一系列数据,但它往往被认为是一系列相同类型的变量。

  • 数组的声明并不是声明一个个单独的变量,比如 number0、number1、…、number99,而是声明一个数组变量,比如 numbers,然后使用 numbers[0]、numbers[1]、…、numbers[99] 来代表一个个单独的变量。数组中的特定元素可以通过索引(index)访问。

  • 所有的数组都是由连续的内存位置组成。最低的地址对应第一个元素,最高的地址对应最后一个元素。
    在这里插入图片描述

声明数组

在 C 中要声明一个数组,需要指定元素的类型和元素的数量,如下所示:

type arrayName [ arraySize ];

这叫做一维数组。arraySize 必须是一个大于零的整数常量,type 可以是任意有效的 C 数据类型。例如,要声明一个类型为 double 的包含 10 个元素的数组 balance,声明语句如下:

double balance[10];

现在 balance 是一个可用的数组,可以容纳 10 个类型为 double 的数字。

初始化数组

在 C 中,您可以逐个初始化数组,也可以使用一个初始化语句,如下所示:

double balance[5] = {1000.0, 2.0, 3.4, 7.0, 50.0};

大括号 { } 之间的值的数目不能大于我们在数组声明时在方括号 [ ] 中指定的元素数目。

如果您省略掉了数组的大小,数组的大小则为初始化时元素的个数。因此,如果:

double balance[] = {1000.0, 2.0, 3.4, 7.0, 50.0};

您将创建一个数组,它与前一个实例中所创建的数组是完全相同的。下面是一个为数组中某个元素赋值的实例:

balance[4] = 50.0;

上述的语句把数组中第五个元素的值赋为 50.0。所有的数组都是以 0 作为它们第一个元素的索引,也被称为基索引,数组的最后一个索引是数组的总大小减去 1。以下是上面所讨论的数组的的图形表示:
在这里插入图片描述

访问数组元素

数组元素可以通过数组名称加索引进行访问。元素的索引是放在方括号内,跟在数组名称的后边。例如:

double salary = balance[9];

上面的语句将把数组中第 10 个元素的值赋给 salary 变量。下面的实例使用了上述的三个概念,即,声明数组、数组赋值、访问数组:

#include <stdio.h>
 
int main ()
{
   int n[ 10 ]; /* n 是一个包含 10 个整数的数组 */
   int i,j;
 
   /* 初始化数组元素 */         
   for ( i = 0; i < 10; i++ )
   {
      n[ i ] = i + 100; /* 设置元素 i 为 i + 100 */
   }
   
   /* 输出数组中每个元素的值 */
   for (j = 0; j < 10; j++ )
   {
      printf("Element[%d] = %d\n", j, n[j] );
   }
 
   return 0;
}

当上面的代码被编译和执行时,它会产生下列结果:

Element[0] = 100
Element[1] = 101
Element[2] = 102
Element[3] = 103
Element[4] = 104
Element[5] = 105
Element[6] = 106
Element[7] = 107
Element[8] = 108
Element[9] = 109

C 中数组详解

在 C 中,数组是非常重要的,我们需要了解更多有关数组的细节。下面列出了 C 程序员必须清楚的一些与数组相关的重要概念:

概念描述
多维数组C 支持多维数组。多维数组最简单的形式是二维数组。
传递数组给函数您可以通过指定不带索引的数组名称来给函数传递一个指向数组的指针。
从函数返回数组C 允许从函数返回数组。
指向数组的指针您可以通过指定不带索引的数组名称来生成一个指向数组中第一个元素的指针
AI编码的“黑箱危机”终结者:OpenSpec如何让你的代码从“猜谜”变“契约”? OpenSpec的真正价值,在于它将AI编码从"经验驱动"推向"契约驱动"——当人类与AI对"目标是什么"达成显式共识,编码就从"猜谜游戏"变成了"工程实现"。这种转变不仅提升效率,更重塑了开发者与AI的关系:AI从"替代者"回归"协作者",而人类则聚焦于"定义正确的事"而非"正确地做事"。对于开发者,OpenSpec提供了驾驭AI的缰绳;对于团队,它构建了协作的基石;对于行业,它预示着AI编码工业化的开端。 阅读详情

相关推荐

Echats-wordcloud 文字云图的踩坑点【Unknown series wordCloud】

一直都是报 【ECharts Unknown series wordCloud】这玩意可能要刷脸,祝你好运吧~

Sky_Bug的博客 2378

C语言基础:数组(声明数组、初始化数组、访问数组元素)

数组(声明数组、初始化数组、访问数组元素)

天行健 君子以自强不息,地势坤 君子以厚德载物。 5405

C++常用查找算法

(1). find //查找元素(2).find_if //按条件查找元素(3).adjacent_find //查找相邻重复元素(4).

程序猿老樊的博客 663

C++11数组了解

C++11数组学习

码城的博客 518

【C++】C++11的std::array的详细剖析

当学习C++的时候,数组是最基本的结构之一,通常通过以下的方式来定义: int a[5]; int *b = new int[5]; 上面一句是在栈上定义了一个长度为5的数组,下面一句是在堆上定义了一个长度为5的数组,并用一个指针指向它。 在C++11中,引入了一种新的数组定义方式std::array。 std::array的特性 std::array是具有固定大小的数组。因此,它并不支持添加...

Yngz_Miao的博客 6万+

c++ 数组最大值索引_04IDEA和数组

数组基本使用数组是用来存储多个元素的容器,要求元素的类型要一致。复习数据类型基本数据类型:byte short int long float double char boolean引用数据类型:【数组】、类、接口定义数组的格式使用以下的格式,可以用来定义数组类型的变量。//数据类型[] 数组名;int[] arr1;//数据类型 数组名[];int arr2[];动态初始化动态初始化指的...

weixin_39821874的博客 1659

C语言数组详解

C语言数组详解,干货满满!

cw412524的博客 2万+

C语言——数组

数组是存放两个或两个以上相邻储存单元的集合,每个储存单元中存放相同数据类型的数据,而这样的单元也被称为数组元素。我们将这句话进行拆分,不难发现数组的特点有:1,数组是存放多个数据的集合,元素的个数不能为02,数组元素的存放是相邻的3,数组中的数据的类型是相同的格式:数组的声明语句及含义,如:数组的初始化就是给数组赋初始值,将数据放在 {} 里 注意:int arr [] ={1,2,3} 等效于→ int arr [3] ={1,2,3} 数组如果初始化了,可以不规定大小,数组会根据初始化的大小

tan_run的博客 3364

【C语言 |数组】C语言数组详解

数组作为C语言比较重要的一部分,本篇文章对数组进行一个梳理跟总结数组是一组相同类型元素的集合,数组本质上是一段连续的内存空间使用数组的索引值访问数组中的每一个元素数组中的每一个数据元素被存储在一段连续的内存空间中一、一维数组

YKX0000的博客 1923

c语言——数组

这个连续增长与数组的类型有关,当数组类型为int类型,每个数组中的元素在内存中都有一个地址,因为int类型是4个字节,所以随着下标增长,地址也很会变(以4个字节一次一次变)每一个元素都有一个下标,这都是从0开始数的,比如就像上面有10个元素,它们的下标不是1到10而是0到9,这是与我们习惯上不同的一个点需要牢记。一维数组中将其中数据看作元素,二维数组则是将一位数组看作元素,依次类推,多维数组则是将前一个数组看作元素的数组。type指定数组存放数据类型,这类型可以是我们常见的类型也可以是我们自定义的类型。

2403_87827685的博客 2233

C语言数组之指针数组数组指针

指针数组指针数组指针数组

weixin_34481217的博客 1万+

初识C++ 入门知识点总结

主要内容: C++命名空间 C++输入和输出 缺省参数 函数重载 引用 内联函数 auto关键字(C++11) 基于范围的for循环(C++11) 指针空值—nullptr(C++11) c++命名空间 在C/C++中,变量、函数和后面要学到的类都是大量存在的,这些变量、函数和类的名称将都存在于全局作用域中,可能会导致很多冲突。使用命名空间的目的是对标识符的名称进行本地化,以避免命名冲突或名字...

小白的Coding之旅 416

关于Java double取值范围及Double的MAX_VALUE和MIN_VALUE的总结

你知道Java double的表示范围吗?

yangfang的博客 5万+

C++定位数组元素索引

二分查找

FantasyJXF的博客 6512

【C++】11.数组

数组中的每个元素都由索引标识,索引是一个数值,表示元素在数组中的位置。如果你需要一个动态调整大小的集合,你可以考虑使用其他数据结构,比如列表(在Python中)或动态数组(在Java的' ArrayList '或c++的' std::vector '等语言中)。在许多编程语言中,包括C、c++、Java、Python等,数组是通过指定数组所包含元素的数据类型及其大小(元素数量)来定义的。然而,数组的大小是固定的,这意味着您需要提前知道元素的最大数目。1. 访问元素:可以使用数组的索引访问元素。

仿生实验室:从0到1,制作人脸表情交互机器人,记录过程,软硬件全部开源,与君共襄盛举! 228

C++找到两数之和的数组索引(完整可运行代码)

问题链接:https://leetcode-cn.com/problems/two-sum/ 问题描述:给定一个整数数组nums和一个整数目标值target,请你在该数组中找出和为目标值target的那两个整数,并返回它们的数组下标。你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。你可以按任意顺序返回答案。 示例: 输入:nums = [2, 7, 11, 15], target = 9 输出:[0, 1] 解释:因为 nums[0] + n...

Han_torch的博客 1665

基于知识图谱的《三国演义》人物关系可视化及问答系统源码+详细文档+全部资料.zip

【资源说明】基于知识图谱的《三国演义》人物关系可视化及问答系统源码+详细文档+全部资料.zip【备注】1、该项目是个人高分项目源码,已获导师指导认可通过,答辩评审分达到95分2、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用!3、本项目适合计算机相关专业(人工智能、通信工程、自动化、电子信息、物联网等)的在校学生、老师或者企业员工下载使用,也可作为毕业设计、课程设计、作业、项目初期立项演示等,当然也适合小白学习进阶。4、如果基础还行,可以在此代码基础上进行修改,以实现其他功能,也可直接用于毕设、课设、作业等。欢迎下载,沟通交流,互相学习,共同进步!

上一篇: 02-线性结构3 Reversing Linked List (25 分)
下一篇: 专业英语0825
chenmo2019
博客等级 码龄9年 69粉丝 142原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值