【C语言】一维数组(详解)

news2024/11/23 1:11:18

目录

1.  数组的概念

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

3.  一维数组的使用

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

5.  sizeof 计算数组元素个数


  正文开始——  

  1.  数组的概念  

数组是一组相同类型元素的集合。

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

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

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

  2.1  数组的创建  

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

1   type  arr_name [常量值];

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

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

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

1   int math[20]; 

当然我们也可以创建其他类型的数组:

1   int age[20];

2   char ch[8]; 

  2.2  数组的初始化  

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

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

1   //完全初始化

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

3   //不完全初始化

4   int age[5]={3};  //第一个元素初始化为3,剩余的元素默认初始化为0

5   //错误的初始化

6   int age[3]={1,3,5,6};   //初始化项太多

  2.3  数组的类型  

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

如下:

1   int arr1[10]      数组类型为 int [10]

2   int arr2[4]                ------    int [4]

3   char ch[5]                ------   char [5]

  3.  一维数组的使用  

一维数组用来存储数据,存储数据的目的是对数据的操作,那我们如何使用一维数组呢?

  3.1  数组下标  

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

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

数组对应下标:  0  1  2  3  4  5  6  7  8  9

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

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

  3.2  数组元素的打印  

如果我们要访问整个数组中的内容,该怎么办呢?

只要产生数组中所有元素的下标就可以了,可以用 for 循环来产生 0~9,再使用数组下标访问就好了。

如下:

  3.3  数组的输入  

实现了数组的访问,现在我们也可以实现对数组中进行数据的输入。

如下:

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

经过前面的学习,我们在使用一维数组的方面没有问题了,现在我们深入了解一下一维数组在内存中的存储。

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

从输出结果我们分析,数组随着下标的增长,地址是有小到大变化的,并且我们发现每两个相邻的元素之间相差4(因为一个整型是4个字节)。所以我们得出结论,数组在内存中是连续存放的。 

  5.  sizeof 计算数组元素的个数  

想知道数组中元素个数,就用 sizeof 

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

比如:

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

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

结果是10,表示数组中有10个元素。

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


  完——

——————————————————Dilemma——————————————————

Dilemma_Nelly、Kelly Rowland_高音质在线试听_Dilemma歌词|歌曲下载_酷狗音乐酷狗音乐为您提供由Nelly、Kelly Rowland演唱的高清音质无损Dilemmamp3在线听,听Dilemma,只来酷狗音乐!icon-default.png?t=N7T8https://t3.kugou.com/song.html?id=4TWr90cCOV2

 

结束啦,拜拜~~~

点赞,收藏+关注哦

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

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

相关文章

运算放大器(运放)同相放大器电路

设计目标 输入电压ViMin输入电压ViMax输出VoMin输出VoMax电源Vcc电源Vee-1V1V-10V10V15V–15V 设计说明 这种设计将输入信号 Vi 放大,信号增益为 10V/V。输入信号可能来自高阻抗源(例如 MΩ),因为该电路的输入阻抗由运算放大器…

vue3delete请求报403forbidden,前后端解决方式,cookie无效问题

在做开发时,前期已经在Controller类加上CrossOrigin(origins "*"),发送get和post请求都没问题,但遇到delete请求时,又报出跨域问题 一.前端添加proxy代理服务器(未能解决) 在vue.config.js中使…

PHP转Go系列 | 字符串的使用姿势

大家好&#xff0c;我是码农先森。 输出 在 PHP 语言中的输出比较简单&#xff0c;直接使用 echo 就可以。此外&#xff0c;在 PHP 中还有一个格式化输出函数 sprintf 可以用占位符替换字符串。 <?phpecho 码农先森; echo sprintf(码农:%s, 先森);在 Go 语言中调用它的输…

pikachu靶场之XSS漏洞测试

一、环境配置 1.pikachu官网下载 下载地址&#xff1a;https://github.com/zhuifengshaonianhanlu/pikachu 2.百度网盘&#xff08;里面含有pikachu跟phpstudy&#xff09; 链接&#xff1a;pikachu下载 密码&#xff1a;abcd 配置&#xff1a;pikachu下载及安装-图文详解…

14K屏FPGA通过MIPI接口点亮

一、屏参数 屏分辨率为13320*5120&#xff0c;MIPI接口8 LANE。 二、驱动接口电路 屏偏置电压5.5V&#xff0c;逻辑供电1.8V。8 LANE MIPI&#xff0c;2 PORT。 三、MIPI DSI规范 DCS (Display Command Set)&#xff1a;DCS是一个标准化的命令集&#xff0c;用于命令模式的显…

基于单片机的智能窗户控制系统的设计

摘 要&#xff1a; 根据单片机技术和现代传感器技术 &#xff0c; 本文主要针对基于单片机的智能窗户控制系统的设计进行探讨 &#xff0c; 仅供参考 。 关键词&#xff1a; 单片机 &#xff1b; 智能窗户 &#xff1b; 控制系统 &#xff1b; 设计 在现代科学技术持续发展的带…

融资融券两融利率最低多少?两融利率最低账户怎么申请?

融资融券账户余额理财技巧 融资融券账户不支持货币基金申赎、逆回购等业务&#xff0c;投资者可以将资金大于维保比例300%的部分通过银证转账转出再转入到普通账户&#xff0c;参与证券公司现金理财或逆回购等业务。 融券卖出和还券技巧 融券卖出所得的资金仅能用于买券还券&…

Linux操作系统学习:day05

内容来自&#xff1a;Linux介绍 视频推荐&#xff1a;[Linux基础入门教程-linux命令-vim-gcc/g -动态库/静态库 -makefile-gdb调试]( 目录 day0530、删除用户31、添加和删除用户组创建用户组删除用户组 32、修改密码33、使用tar工具进行压缩和解压缩压缩解压缩 34、使用zip u…

▶《强化学习的数学原理》(2024春)_西湖大学赵世钰 Ch4 值迭代 与 策略迭代 【动态规划 算法】

PPT 截取必要信息。 课程网站做习题。总体 MOOC 过一遍 1、视频 学堂在线 习题 2、过 电子书 补充 【下载&#xff1a; 本章 PDF 电子书 GitHub】 [又看了一遍视频。原来第一次跳过了好多内容。。。] 3、总体 MOOC 过一遍 习题 学堂在线 课程页面链接 中国大学MOOC 课程页面链…

【宠粉赠书】科技图表绘制:R语言数据可视化

为了回馈粉丝们的厚爱&#xff0c;今天小智给大家送上一套科研绘图的必备书籍——《R语言数据可视化&#xff1a;科技图表绘制》。下面我会详细给大家介绍这套图书&#xff0c;文末留有领取方式。 图书介绍 《R语言数据可视化&#xff1a;科技图表绘制》结合编者多年的数据分析…

jenkins安装和使用 (二)

参考视频资料 https://www.bilibili.com/video/BV1bS4y1471A?p10&vd_sourcee0dcd147bd5d730317de804d788cd6f9 安装maven插件 新建item 配置构建信息 项目地址替换为自己的实际地址 其余保持先保持默认 先然后在主页就看到了这个项目 查看控制台输出 稍等一…

Java 17的新特性

Java 17引入了多项新特性&#xff0c;以下是一些重要的更新&#xff1a; 增强的伪随机数生成器&#xff08;JEP 356&#xff09; Java 17为伪随机数生成器&#xff08;PRNG&#xff09;提供了新的接口类型和实现&#xff0c;包括可跳转的PRNG和另一类可拆分的PRNG算法&#xf…

聊聊 Mybatis 动态 SQL

这篇文章&#xff0c;我们聊聊 Mybatis 动态 SQL &#xff0c;以及我对于编程技巧的几点思考 &#xff0c;希望对大家有所启发。 1 什么是 Mybatis 动态SQL 如果你使用过 JDBC 或其它类似的框架&#xff0c;你应该能理解根据不同条件拼接 SQL 语句有多痛苦&#xff0c;例如拼…

得物面试:什么是零复制?说说 零复制 底层原理?(吊打面试官)

尼恩说在前面 在40岁老架构师 尼恩的读者交流群(50)中&#xff0c;最近有小伙伴拿到了一线互联网企业如得物、阿里、滴滴、极兔、有赞、希音、百度、网易、美团的面试资格&#xff0c;遇到很多很重要的零复制的问题&#xff1a; 说一说Rocketmq、是如何实现每秒上百万数据的超…

ACIS采用自底向上的方式创建box

在学习任何CAD几何内核的时候&#xff0c;首先需要学习的是这个几何内核的几何拓扑数据结构&#xff0c;学习完毕后&#xff0c;一个很好的练习是自己采用底层的几何、拓扑构建API&#xff0c;创建一个box。通过这个练习&#xff0c;可以加深初学者对所学几何内核数据结构的理解…

AXI三板斧之Outstanding、Out-of-order、interleaving

1、AXI三板斧之Outstanding 可以不用等单个命令的响应&#xff0c;直接连续发送N个命令&#xff08;N>1&#xff09;&#xff0c;假设Slave端的Outstanding能力为N时&#xff08;N>1&#xff09;&#xff0c;那么Master端可以在Slave不返回读数据的情况下&#xff0c;连…

从小白到大神:算法工程师的核心竞争力养成计划!

从小白到大神&#xff1a;算法工程师的核心竞争力养成计划&#xff01; 我们会发现&#xff0c;本科及研究生所学的知识&#xff0c;比如高等数学、线性代数、传统机器学习方法及深度学习理论等这些&#xff0c;都只是作为算法学习的基础&#xff0c;并不能成为算法工程师的核…

React@16.x(34)动画(中)

目录 3&#xff0c;SwitchTransition3.1&#xff0c;原理3.1.2&#xff0c;key3.1.2&#xff0c;mode 3.2&#xff0c;举例3.3&#xff0c;结合 animate.css 4&#xff0c;TransitionGroup4.1&#xff0c;其他属性4.1.2&#xff0c;appear4.1.2&#xff0c;component4.1.3&…

【Python】对应接口url 被编码后的处理

Python 系列 文章目录 Python 系列前言一、网页链接是什么&#xff1f;二、使用步骤1.解码 总结 前言 提示&#xff1a;这里可以添加本文要记录的大概内容&#xff1a; 我们在查找网页的开发代码的时候&#xff0c;可能经常查看到接口的链接是&#xff1a; %7B%22funName%22%…

昇思25天学习打卡营第1天|快速入门

一、简介&#xff1a; 本节通过MindSpore已经封装好的API&#xff0c;快速实现一个深度学习模型的数据集准备、训练评估&#xff0c;模型参数保存和加载&#xff0c;对新手朋友十分友好。这里非常感谢华为昇思团队在算力和代码方面的指导。 二、环境准备&#xff1a; 在开始…