【C语言】数组(上)

news2024/11/16 19:30:56

【C语言】数组

  • 1、数组的概念
  • 2、一维数组的创建和初始化
    • 2.1数组创建
    • 2.2数组的初始化
    • 2.3数组的类型
  • 3、一维数组的使用
    • 3.1数组下标
    • 3.2 数组元素打印
    • 3.3数组的输入
  • 4、一维数组在内存中的存储
  • 5、sizeof计算数组元素个数

1、数组的概念

数组是一组相同类型元素的组合,以下是数组的特点:

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

数组中可以分为一维数组和多维数组,常见的多维数组是二维数组

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

2.1数组创建

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

type arr_name[常量值];

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

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

eg:如果想存储某个班级20人的数学成绩,可以创建如下数组:

int math[20];//数组有20个元素,每个元素的类型是int

我们也可以根据实际情况来创建其他类型的数组以及大小
eg:

char ch[12];//字符数组。
double score[18];//双精度浮点数组。

2.2数组的初始化

数组在创建时,我们往往需要给定一些初始值,称为数组的初始化

  • 当对数组进行初始化的时候,数组的大小可以省略
  • 编译器会根据初始化内容,自动计算元素个数

eg:
在这里插入图片描述

2.3数组的类型

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

int arr1[15];
double arr2[18];
char ch[5];

如上图所示:

  • 第一行数组的元素的类型是int类型;数组的类型是int[15];
  • 第二行数组的元素的类型是double类型;数组的类型是double[18];
  • 第三行数组的元素的类型是char类型;数组的类型是char[5]

3、一维数组的使用

通过上面的介绍数组的基本语法,我们可以知道一维数组可以存放数据,存放数据的目的就是对数据的操作。接下来介绍一维数组的使用方法。

3.1数组下标

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

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

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

有了下标引用操作符,我们就可以访问我们想要的数组元素了,eg:如果我们想要访问下标为9的元素,我们就可以使用arr[9],请看代码示例:

在这里插入图片描述

3.2 数组元素打印

如果我们想要访问整个数组的内容,如何实现呢?
只要我们产生数组所有元素的下标就可以实现,这时我们可以使用for循环产生0-9的下标,然后使用下标访问就可以实现。

eg:
在这里插入图片描述

3.3数组的输入

介绍完了数组的访问以及打印之后,我们可以根据自己的需要自己给数组进行输入想要的数据,示例如下:

在这里插入图片描述

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

介绍了一维数组的基本知识之后,我们便可以使用简单的一维数组了,如果想要深入了解数组,我们就需要了解一下数组在内存中的存储。

在这里插入图片描述
通过观察一维数组的内存可以发现,数组随着下标的增长,地址是由低到高变化的,并且每两个相邻元素之间相差4(每个int元素占有4个字节)

所以可以得到结论:数组在内存中是连续存放的。
在这里插入图片描述

5、sizeof计算数组元素个数

在遍历数组的时候,我们经常想知道数组的元素个数,我们可以使用sizeof来计算数组的元素个数。

sizeof是C语言的关键字之一,可以计算类型或者变量大小,也可以计算数组的大小
在这里插入图片描述
上述示例计算的是数组所占内存空间的总大小,单位:字节(byte)。

我们又知道数组中所有元素的类型都是相同的,那只要计算出一个元素所占的字节个数,数组所占的内存空间总大小就可以知道(一个元素所占字节x元素个数)
在这里插入图片描述
元素个数计算:
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2171929.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【RabbitMQ】面试题

在本篇文章中,主要是介绍RabbitMQ一些常见的面试题。对于前几篇文章的代码,都已经在码云中给出,链接是mq-test: 学习RabbitMQ的一些简单案例 (gitee.com),如果存在问题的话欢迎各位提出,望共同进步。 MQ的作用以及应用…

快速上手Make Sense:在线标注数据集的强大工具

链接: Makesense汉化版本 Makesense英文版 随着深度学习在计算机视觉领域的广泛应用,数据集标注成为了一项重要的任务。Make Sense正是一个为图像数据集提供标注功能的在线工具。其易用性和强大的功能使得它在众多标注工具中脱颖而出。本文将为你详细介绍…

找不到msvcr100.dll怎么解决?总结6个有效的解决方法

在使用计算机的过程中,我们经常会遇到一些错误提示,其中之一就是“msvcr100.dll丢失”。这个问题可能会让我们感到困惑和无助,但是不用担心,本文将为大家介绍六种实用的解决方法,帮助你轻松解决这个问题。 一&#xff…

raylib实现生产者消费者模型增加缓冲提高帧率

原来增加了四叉树导致帧率下降 后来学了生产者消费者模型&#xff0c;尝试追加缓冲池&#xff0c;剥离主函数查找需要更新的数据 帧率上升稳定到60帧 多了10 帧 中间工程主要是探索数据结构体怎么安排 // 参考自 https://zhuanlan.zhihu.com/p/693482704 #include <stdio.…

C语言-进程

一,进程的基本认识 1,进程的简介 进程描述是一个程序执行过程。当程序执行后&#xff0c;执行过程开始&#xff0c;则进程产生&#xff1b;执行过程结束&#xff0c;则进程也就结束了.进程和我们普通电费程序最大的区别就是,进程是动态的,他是一个过程,而程序是静态的. 2,进程…

永辉超市自救三部曲:靠名创优品复制胖东来?如何避免另一个苏宁易购?

《港湾商业观察》施子夫 王璐 从潮流产品新锐向大型商超迈入&#xff0c;没有人想到名创优品(09896.HK&#xff1b;MNSO.US)会成为永辉超市&#xff08;601933.SH&#xff09;的第一大股东。 近63亿元的收购价让两家本就知名度颇高的企业在2024年的商业江湖中更加瞩目。然而…

​极狐阿尔法 S5安全至上,北汽极狐打造移动防护堡垒

在新能源汽车的广阔舞台上&#xff0c;北汽极狐以其卓越的品质和创新的技术&#xff0c;不断书写着辉煌篇章。其中&#xff0c;极狐阿尔法 S5更是以其强大的性能、豪华的配置和亲民的价格&#xff0c;成为了众多消费者关注的焦点。 北汽极狐的品质追求 北汽极狐一直以来都将品…

【蓝牙小知识集锦!】禁止电脑连接蓝牙如何操作?一分钟教你5种小妙招!

禁止电脑连接蓝牙如何操作&#xff1f; 在回答如何禁止电脑连接蓝牙这个问题之前&#xff0c;我们要先了解&#xff0c;企业为啥要禁止蓝牙&#xff1f;原因是什么&#xff1f; 一、禁止蓝牙连接的原因 它可以涉及多个方面&#xff0c;主要包括安全性、效率、能源管理以及避免…

matlab r2024a、matlab R2024b保姆级安装教程

​ 1.安装步骤 右键【setup.exe】以【管理员身份运行】 点击【高级选项】-【我有文件安装密钥】 点击【是】-【下一步】 输入密钥【21471-07182-41807-00726-32378-34241-61866-60308-44209-03650-51035-48216-24734-36781-57695-35731-64525-44540-57877-31100-06573-50736-…

【论文速看】DL最新进展20240927-目标检测、Transformer

目录 【目标检测】【Transformer】 【目标检测】 [2024小目标检测] A DeNoising FPN With Transformer R-CNN for Tiny Object Detection 论文链接&#xff1a;https://arxiv.org/abs/2406.05755 代码链接&#xff1a;https://github.com/hoiliu-0801/DNTR 尽管计算机视觉领域…

信息学奥赛复赛复习05-CSP-J2020-01优秀的拆分-对数函数、自然对数、以2为底的对数、幂函数、打表

PDF文档回复:20240927 1 2020 CSP-J 题目1 优秀的拆分 [题目描述] 一般来说&#xff0c;一个正整数可以拆分成若干个正整数的和 例如&#xff0c;11&#xff0c;101234 等。对于正整数 n的一种特定拆分&#xff0c;我们称它为“优秀的”&#xff0c;当且仅当在这种拆分下&am…

【Redis】安装redis-plus-plus

目录 安装redis-plus-plus 安装hiredis 安装redis-plus-plus本体 具体步骤 ​编辑编写一个hello程序 安装redis-plus-plus C操作redis的第三方库有很多&#xff0c;咱们此处使用redis-plus-plus&#xff0c;安装链接如下&#xff1a; GitHub - sewenew/redis-plus-plus: …

gitee windows/linux配置使用

1、安装git工具 地址&#xff1a;git工具安装地址 1.2在gitee上创建仓库 在浏览器中打开Gitee网站&#xff0c;并登录到您的账户。点击页面右上方的加号图标&#xff0c;然后选择“新建仓库”。输入仓库的名称、描述和其他相关信息&#xff0c;然后点击“创建仓库”按钮。添…

大势Inside | “郧县人”重大考古成果写入人教版初中历史教科书

近日&#xff0c;发掘于湖北十堰郧阳的“郧县人”考古成果被写入2024年秋人教版历史教科书&#xff08;七年级上册&#xff09;第一课“远古时期的人类活动”&#xff0c;与闻名中外的“元谋人”、“蓝田人”、“北京人”、“山顶洞人”并列。 人教版七年级上册中国历史教科书 …

基于SSM的图书管理管理系统的设计与实现 (含源码+sql+视频导入教程)

&#x1f449;文末查看项目功能视频演示获取源码sql脚本视频导入教程视频 1 、功能描述 基于SSM的图书管理管理系统4拥有两种角色&#xff0c;用户可以浏览评论图书、登录注册&#xff0c;管理员可以进行图书馆管理、用户管理、分类管理等功能 1.1 背景描述 图书书店销售管理…

基于Hadoop的NBA球员大数据分析及可视化系统

作者&#xff1a;计算机学姐 开发技术&#xff1a;SpringBoot、SSM、Vue、MySQL、JSP、ElementUI、Python、小程序等&#xff0c;“文末源码”。 专栏推荐&#xff1a;前后端分离项目源码、SpringBoot项目源码、Vue项目源码、SSM项目源码 精品专栏&#xff1a;Java精选实战项目…

Meta的LLaMA 3.2系列大模型打败OpenAI,Orion的原型AR眼镜更是引领科技新时代!

Meta公司推出的LLaMA 3.2系列模型在人工智能领域引起了广泛关注。这些模型包括了多种尺寸&#xff0c;从适合移动应用和边缘设备的轻量级模型&#xff08;1B和3B参数版本&#xff09;到功能强大的90B视觉模型&#xff0c;后者支持文本和图像处理任务&#xff0c;如图像字幕、文…

腾讯邮箱上传附件卡、慢、无法上传,下载慢问题处理

1、检查文件中转站容量是否已满 2、建议用户打开链接https://exmail.qq.com/qy_mng_logic/wasmHelper?typehashv2&#xff0c;看是否可以正常访问。&#xff08;能打开下载就表示可以正常访问&#xff09; 3、让用户切换到4G或者其他网络再重新上传附件是否会重现问题&#xf…

Mac制作Linux操作系统启动盘

前期准备 一个 Mac 电脑 一个 U 盘&#xff08;8GB 以上&#xff09; 下载好 Linux 系统镜像&#xff08;iso 文件&#xff09; 具体步骤 挂载 U 盘 解挂 U 盘 写系统镜像到 U 盘 完成 一、挂载 U 盘 首先插入 U 盘&#xff0c;打开终端输入下面的命令查看 U 盘是否已经 m…

python -tkinter

在Button的command绑定中&#xff0c;如果给的一个函数&#xff0c;则表示执行一次。 import tkinter as Tkfrom tkinter import messageboxi 0def myLabel():global root,is Tk.Label(root,text"the import thing is :" )s.pack()root Tk.Tk()def fun1():if mess…