一维数组的用法

2026年佰维存储数字IC笔试试卷带答案 建立时间是有效时钟沿到来前,输入数据必须稳定保持的最短时间。保持时间是有效时钟沿到来后,输入数据必须继续稳定保持的最短时间。 阅读详情

1.数组的概念

数组是一组相同类型元素的集合;从这个概念中我们就可以发现2个有价值的信息:

  • 数组中存放的是1个或者多个数据,但是数组元素个数不能为0。
  • 数组中存放的多个数据,类型是相同的。

数组分为一维数组和多维数组,多维数组一般比较多见的是二维数组。

2.一维数组的创建和初始化

2.1数组创建

一维数组创建的基本语法如下:

type arr_name[常量值];

存放在数组里的值被称为数组的元素 ,数组在创建的时候可以指定数组的大小和数组的元素类型

  • type指定的是数组中存放数据的类型,可以是:char,short,int,float等,也可以自定义的类型
  • arr_name指的是数组名的名字,这个名字根据实际情况,起的有意义就行
  • [ ] 中的常量值是用来指定数组的大小的,这个数组的大小是根据实际的需求指定就行

比如:我们现在想存储某个班级的20人的数学成绩,那么我们就可以创建一个数组,如下:

int math[20];

当然我们也可以根据需要创建其他类型和大小的数组:

char ch [8];
doule score [10];

2.2 数组的初始化 

有时候,数组在创建的时候,我们需要给定一些初始值,这种就被称为初始化的。

那数组如何初始化呢?数组的初始化一般使用大括号,将数据放在大括号中。

// 完全初始化
int arr[5] = { 1,2,3,4,5 };

// 不完全初始化
int arr2[6] = { 1 }; 
    //第一个元素初始化为1,剩余的元素默认初始化为0

// 错误的初始化 - 初始化项太多
int arr3[3] = { 1,2,3,4 };

2.3 数组的类型 

数组也是有类型的,数组算是一种自定义类型,去掉数组名留下的就是数组的类型。

如下:

int arr1[10];    //arr1数组的类型是int[10]
int arr2[12];    //arr2数组的类型是int[12]
char ch[5];      //ch数组的类型是char[5]

 3.一维数组的使用

学习了一维数组的基本语法,一维数组可以存放数据,存放数据的目的是对数据的操作,那我们怎么使用一维数组呢?

3.1数组下标

C语言规定数组是有下标的,下标是从0开始的,假设数组有n个元素,最后一个元素的下标是n-1,下标就相当于数组元素的编号,如下:

int arr[10] = {1,2,3,4,5,6,7,8,9,10};
 

在C语言中数组的访问提供了一个操作符 [ ] ,这个操作符叫:下标引用操作符

有了下标访问操作符,我们就可以轻松的访问到数组的元素了,比如我们访问下标为7的元素,我们就可以使用arr [ 7 ] ,想要访问下标为3的元素,就可以使用arr [ 3 ],如下代码:

int main()
{
	int arr[10] = { 1,2,3,4,5,6,7,8,9,10 };
	printf("%d\n", arr[7]);  // 8
	printf("%d\n", arr[3]);  // 4
	return 0;
}
 3.2 数组元素的打印

接下来,如果想要访问整个数组的内容,那怎么办呢?

只要我们产生数组所有元素的下标就可以了,那我们使用for循环产生0~9的下标,接下来使用下标访问就行了。 如下代码:

int main()
{
	int arr[10] = { 1,2,3,4,5,6,7,8,9,10 };
	int i = 0;
	for (i = 0; i < 10; i++)
	{
		printf("%d ", arr[i]);
	}
	return 0;
}
输出的结果是: 3.3 数组的输入

明白了数组的访问,当然我们也根据需求,自己给数组输入想要的数据,如下:

int main()
{
	int arr[10] = { 1,2,3,4,5,6,7,8,9,10 };
	int i = 0;
	for (i = 0; i < 10; i++)
	{
		scanf("%d", &arr[i]);
	}
	for (i = 0; i < 10; i++)
	{
		printf("%d ", arr[i]);
	}
	return 0;
}

输入输出的结果:

4. 一维数组在内存中的存储 

有了前面的知识,我们其实使用数组基本没有什么障碍了,如果我们要深入了解数组,我们最好能了解一下数组在内存中的存储。

依次打印数组元素的地址:

int main()
{
	int arr[10] = { 1,2,3,4,5,6,7,8,9,10 };
	int i = 0;
	for (i = 0; i < 10; i++)
	{
		printf("&arr[%d] = %p\n ",i,&arr[i]);
	}
	return 0;
}

输出结果:

从输出的结果我们分析,数组随着下标的增长,地址是由小到大变化的,并且我们发现每两个相邻的元素之间相差4(因为一个整型是4个字节),所以我们得出结论:数组在内存中是连续存放的。这就为后期我们使用指针访问数组奠定了基础(在讲指针的时候我们再讲,这里暂且记住就行)。

5. sizeof计算数组元素个数 

在遍历数组的时候,我们经常想知道数组的元素的个数,那C语言中有办法使用程序计算数组元素个数吗?答案是有的,可以使用sizeof

sizeof 是C语言中的一个关键字,是可以计算类型或者变量大小的,其实sizeof也可以计算数组的大小。比如:

int main()
{
	int arr[10] = { 0 };
	printf("%d\n", sizeof(arr));
	return 0;
}

这里输出的结果是40,计算的是数组所占内存空间的总大小,单位是字节。

我们又知道数组中的所有元素的类型都是相同的,那只要计算出一个元素所占字节的个数,数组的元素个数就能算出来。这里我们选择第一个元素算大小就可以。

int main()
{
	int arr[10] = { 0 };
	printf("%d\n", sizeof(arr[0]));
	return 0;
}

这里输出的结果是4 (因为int类型是4个字节),所以接下来我们就能计算出数组的元素个数:

int main()
{
	int arr[10] = { 0 };
	int sz = sizeof(arr) / sizeof(arr[0]);
	printf("%d\n", sz);
	return 0;
}

这里的结果是:10,表示数组有10个元素。

以后再代码中需要数组元素个数的地方就不用固定写死了,使用上面的计算,不管数组怎么变化,计算出的大小也随着变化了。如下所示:

int main()
{
	int arr[] = {1,2,3,4,5,6,7,8,9,10,11,12,13 };
	int sz = sizeof(arr) / sizeof(arr[0]);
	int i = 0;
	for (i = 0; i < sz; i++)
	{
		printf("%d ", arr[i]);
	}
	return 0;
}

以上就是对一维数组的详细介绍 制作不易 喜欢的朋友记得点赞评论收藏哦!!! 

使用MATLAB结合EasySpin进行ESR模拟的详细步骤及示例代码 安装EasySpin:确保你已经安装了EasySpin工具箱,它可以帮助你进行ESR模拟。你可以从EasySpin的官方网站(https://easyspin.org/)下载并安装。准备实验数据:将实验得到的EPR数据整理成合适的格式,一般包含磁场(Magnetic Field)和信号强度(Intensity)两列。进行模拟:使用EasySpin的函数对单线态氧自由基和超氧自由基进行模拟。调整参数:通过调整模拟参数,使模拟得到的峰型和峰位置与实验数据尽可能匹配。导出数据。 阅读详情

相关推荐

windows系统下,如何为comfyui如何安装triton

​ 有些加速插件、模型在安装的时候,比如说sageattention的安装,就需要提前安装triton这个包,不过这个包有点特殊,windows下略微不好装,经常会装失败。 🎠如何安装 之前也有人介绍过,要到github上找个wheel文件,找到对应的版本安装下就好了。 问题是:https://github.com/woct0rdho/triton-windows/releases 这个git地址上,已经找不到wheel文件了... ​

聚梦小课堂 4499

一维数组和二维数组的使用(int类型)

把二维数组写成行和列的排列形式,可以有助于形象化的理解二维数组的逻辑结构。数组创建,在C99标准之前,[]中要给一个常量才可以,不能使用变量。一维数组是数组中最简单的,它的元素只需要用数组名加一个下标,就能唯一地确定。

qq_64818885的博客 1384

在 CentOS Stream 10 上搭建 Kubernetes 集群并支持开发调试与日志查看

搭建 Kubernetes 集群的每个步骤详细的文档。

灵犀物润 1644

一维数组的应用

无

rsz364110的博客 1443

IFIX往Mysql数据库同步数据方法

通过IFix数据库向Mysql数据库同步数据

仙人掌 1596

STM32CubeIDE入坑指南

一 前言 在科技日新月异的今天,作为从事效率为先的苦逼 IT 行业,秉承着我不入地狱谁入地狱的伟大革命精神,我决定再一次做第一个吃螃蟹的人,通过自身的入坑过程,为大家测试STM32CubeIDE这款新式工具。(其实是为了我能省点时间,快点做完项目,多挣点钱买几瓶肾气丸) 二 看一看别人是如何入坑的 二 手把手带你入坑 三 相关资料 ...

CH的博客 1万+

一维数组的使用

注意数组的下标是从0开始的,int[] arr = new int[5] 这句话的意识是,表示创建了一个能存放五个int的数组,但是并没有下标为5的这个位置,因为下标从0开始,因此最大也就是4。首先我们需要了解数组是说明,数组是可以存放多个同一类型的数据,数组 也是一种数据类型,是引用类型,在。//如果是short 类型数组没有给他赋值,那么数组中存放的就是0。//如果是byte 类型数组没有给他赋值,那么数组中存放的就是0。//如果是int 类型数组没有给他赋值,那么数组中存放的就是0。

weixin_53616401的博客 3011

避开PSRR仿真三大坑:用Cadence psspxf分析分频器时,这些设置错了白忙活

本文深入探讨了使用Cadence psspxf工具进行分频器PSRR仿真时常见的三大技术陷阱,包括扰动信号参数设置、收敛性优化和后处理信号提取。通过详细的参数推荐和实战技巧,帮助工程师避免仿真误差,提升PSRR分析效率与准确性,特别适用于16分频器等数字-模拟混合电路设计。

weixin_29258297的博客 301

C语言 数组(上)

目录1.数组的概念2.一维数组的创建和初始化3.一维数组的初始化4.sizeof计算数组中元素的个数

2401_88465894的博客 810

智能化教育改革中的教师角色转变:AI应用架构师如何设计“人机协同”系统?

个性化与规模化的矛盾:如何用AI实现规模化的个性化学习,同时保留教师的“人文温度”?自动化与自主性的矛盾:如何用AI自动化流程(如批改),同时避免教师沦为“AI操作工人”?数据驱动与经验驱动的矛盾:如何平衡AI的“数据决策”与教师的“经验决策”,避免“算法偏见”或“经验固化”?在智能化教育改革中,教师始终是教育的核心——AI系统是“辅助工具”,而非“替代者”。

小白菜的博客 1269

Vue - 解决 Property or method “__v_isRef“ is not defined on the instance but referenced(浏览器控制台报错,代码没错)

vue,vue2控制台报错,vue报错Propertyormethod"__v_isRef"isnotdefinedontheinstancebutreferenced,vue代码没问题,但是报错Propertyormethod"__v_isRef"isnotdefinedontheinstancebutreferenced,vue2如何解决报错,vue怎么解决报错问题,vue2Propertyormethod"__v_isRef"isnotdefi

🏆 前端领域优质创作者 4501

一维数组的介绍以及用法的示例

一维数组 一维数组是用于储存同一种类型数据的链表结构。数组里的值的下标由0开始到长度减一,数组长度一旦定义不能改变。 在访问数组时,一定要注意: 下标不要越界,否则会抛出一个异常 ArrayIndexOutOfBoundsException 静态初始化:数组类型[] 数组名= {值,值,值....}; 数组类型 数组名[]= {值,值,值....}; Java不推荐使用 例:int[] arr={1,2,3}; 动态初始化: 数组类型[] 数组名=

weixin_44224076的博客 788

LVGL 磁罗盘效果

环境:LVGL 9.x + SDL2,窗口 1280×800。界面文案用英文(默认 Montserrat,无 CJK)。本文按实现顺序讲:先建立两个耦合转动体,再把磁倾角误差从卡面倾斜里推出来,最后用同一套投影把刻度、数字和目标画到卡上。画面上的迟滞、涡流、摆动和读数偏差都来自方程,没有补间动画。

摸鱼专家 88

sizeof在一维数组与二维数组的对⽐以及sizeof的用法

17.这里表示的是取第四行元素的地址,但我们所给的数组中没有第四行,这是因为sizeof不会对数据进行访问,不会对其进行计算,它相当于默认有第四行且列数不变所以输出16.10.不是单独放入则a[0]表示&a[0][0],在加1表示第一行第二个元素的地址,在X64环境下是8,X86环境下是4.10.a+1表示跳过了该数组,取其之后的地址,但还是地址所以在X64环境下是8,X86环境下是4.8.不是单独放入sizeof中,a+0表示数组首元素地址,在X64环境下是8,X86环境下是4.

yj0729的博客 775

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

一维数组及二维数组的用法

今天主要学习的是数组的基本概念及数组的用法,讲了一维数组和二维数组

zhangtaoloving的专栏 675

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

C语言一维数组的定义与常见用法

一维数组的定义与初始化 一维数组指的是只有一个下标的数组,它用来表示一组具有相同类型的数据。在C语言中,一维数组的定义方式如下所示 类型说明符 数组名[常量表达式]; 在上述语法格式中,类型说明符表示数组中所有元素的类型,常量表达式指的是数组的长度,也就是数组中存放元素的个数。 例 int array[5l; 上述代码定义了一个数组,其中,int是数组的类型,aray是数组的...

178技术 4万+

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

一维数组的高级用法

今天在《数据结构(java篇)》中看到的一个数组的高级应用,想想当初看数组的时候居然没有想到数组能这么用;现在把代码给出来,由于没有书中提到的ConSoleReader,所以我把代码改了一下,用System.in来接受用户的输入。+-----------------------------------------Array01.java Code--------------------------

Anonymous 2585

【Java】一维数组的定义及用法

本文主要介绍一维数组的定义及用法,代码如下: package com.xzw.csdn; /** * 数组的定义及用法 * @author xzw * */ public class Array { /** * 主函数 * @param args */ public static void main(String[] args) { //数组定义 int[] ...

象在舞的技术专栏 6977

一维数组的基本用法

文章目录前言一、数组及其一些基本操作二、冒泡排序口诀三、二分查找原理四、五个程序1、查找某个整数2、找出数组最值3、找出两数之和的目标值4、排序并查找5、移动零总结 前言 介绍数组的一些基本问题,冒泡排序和二分查找的原理,并且有其对应的编程 一、数组及其一些基本操作 二、冒泡排序口诀 三、二分查找原理 四、五个程序 1、查找某个整数 定义一个长度为10的整型数组nums,循环输入10个整数。然后将输 入一个整数,查找此整数,找到输出下标,没找到给出提示。 public static voi.

q18770158319的博客 1151

C语言一维数组的用法

一维数组的基本用法

qq_58356691的博客 431

一维数组用法

数组的定义为:就是用一个名字来代表一组数据,通过序号和下标来区分各个数据。 数组形式一般为: 类型名+数组名+[常量表达式]类型名+/数组名+[ ]例如: int arr[5],意为包含5个整型元素的数组arr。 数组的表现形式有一下几种: int a[10]; 意为包含10个整型元素的数组a。 int a[25]; 同上 int a[n2]; n为已定义的常变量 数组的赋值: 1、数组的赋值是...

qq_45259525的博客 383

动态内存的分配用法和构造动态一维数组

int *pArr; pArr = (int *)malloc(4 * length); 相当于构造了这样一个数组 intpArr[length]; #include <stdio.h> #include <malloc.h> void function(int * q) { //*p = 200; //报错 因为没有变量*p //q = 2...

ywl470812087的博客 12万+

一维数组和二维数组的定义及用法

一维数组的定义 类型说明符 数组名 [常量表达式]; 在此说明:常量表达式必须是常量和常量符号。常量表达式定义了数组的长度。在宏定义中#define定义一个符号常量,则这个符号常量可以用来声明数组的个数 #define n=9 ..... int arr[n]; 一维数组的引用 数组必须先定义在使用,可以通过引用数组元素方式使用该数组中的元素,如arr[0]就是访问的数组的第...

qq_40955824的博客 2万+

VB.net一维数组用法

在VB.NET中数组的用法与VB 中有一点不同。 首先在定义数组过程中,定义静态数组语句是相同的 Dim data(10) as String vb6中如上定义表示数组data()中有10个元素,下标分别是0-9 而VB.NET中表示数组 data() 中有11个元素,下标分别为0-10 数组赋值: 我们可以对数组进行单一的赋值,方法: data(0)="一" ;data(1)="二"...

weixin_30593261的博客 741

关于一维数组是行向量还是列向量,numpy dot用法

可以说一维数组具有行列结构,其中行数为 1,列数为数组的长度。但在通常情况下,我们更倾向于将其视为单个维度的数组。在后期神经网络的学习中np.a.shape()即数组的维度数很重要,我们甚至不需要去研究数组的具体形状,但对应维度数必须相同。np.dot一般计算矩阵的乘法,但是在np.dot(a,b)a与b两个都是一维向量时,是计算向量的内积。得到结果是[4,],开始以为一维数组是行向量,那么输出结果为什么不是[,4]。一维数组没有明确的行列概念,但仍然可以将其视为拥有一行和。

loyaltyck的博客 852

总结一维数组

但是此时问题又来了,如果像上面的那个数组的话,奇数项和偶数项就不对齐了,这时表达式便成了这样:a[n-1]=n;如上图:如果每个空间都有一个“门牌号”的话,那么去寻找一个值的话就会方便的多,这时便有了数组下标的诞生。因为一维数组的下标是连续的有规律的,这样我们便可以方便的将数据存放在数组里面。因为数组的下标是确定的,所以不便更改,只能更改元素的位置去使他们对齐。如图所示:这是一个数组的内部形式,它把所有的元素分别放在特定的空间。a[]表示的是数组的形式,n表示的是数组中元素的个数。还有一种是直接赋值,

gdjwbsv的博客 356
上一篇: 深入浅出学会猜数字小游戏
下一篇: 二维数组的用法
study_24_4_3
博客等级 码龄3年 129粉丝 19原创
评论 4
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值