当前位置: 首页 > news >正文

c语言一维数组总结详解

目录

介绍:

一维整型数组:

声明:

初始化:

打印输出:

输出结果:

浮点型数组:

代码:

运行结果:

补充:

一维字符数组:

字符数组声明及初始化:

部分全部代码:

总结:

介绍:

本篇文章将同时介绍一维整型,浮点型,字符数组

一维整型数组:

声明:

int + 数组名[数组长度(也可以不写)]

初始化:

来看代码解释初始化方法

int a[ ] : a这个数组的长度虽然没写 但是因为后面的初始化 这个数组的长度是6

int a1[6] : a1这个数组的初始化就是最标准的声明及初始化方式
还有一种方式:

int a2[6]: a2这个数组的初始化 是从键盘输入数值(很显然输入六个值) 大家应该我的第一行代码是什么意思 

因为我用的Visual Studio 2022 编译器 不加第一行代码scanf用不了 

打印输出:

那么怎么输出这几个数组呢?来看代码:

倒数三个for循环就是用来打印三个数组 所以打印数组就得用for循环  如果大家还有什么办法评论区发言哦

输出结果:

第一行就是a2数组的输入

2,3,4行就分别是三个数组的 输出结果

浮点型数组:

代码:

这里的代码就不做讲解了 大家可以看上文

运行结果:

 

这里第一行和小编上一篇文章一样 输入了一个数组 

补充:

大家先看小编给大家写的一个图片:

看完这个图片小编补充一下

就是数组 a[6]: "[   ]" 里面的数字6 代表这个数组有6个元素 就是6 个int类型的数字 

然后 如果咱们想要用数组里的第一个数字我们要取a[0]

所以很容易发现一个规律:想要数组里的第n个数 a[n - 1]  就是那个数

一维字符数组:

字符数组声明及初始化:

来看代码:

1.数组b就是 最普遍的初始化字符数组和声明数组的方法 可以看到和 之前讲过的整型数组非常相似 就是存储的数据类型不同 

2.数组a就有点不同了 大家可以发现 相比于数组b 数组a多了一个‘\0’ 这就说明 数组a可以当做字符串使用了 因为它具备了字符串的标志‘\0’  ‘\0’ 就是字符串的结束符 每个字符串都应具有的标志 否则 计算机就找不到字符串的头在哪了 就会一直读 会出现一堆乱码 直到读到字符串数组的最后一个元素 和整型一样 没有初始化的元素 系统会随机显示一些数 而有了结束符之后 系统就不会往后读了 这些 下面讲

注意:像数组a,b这种初始化方式 未初始化的部分都是空 就打印出来什么都没有

 

可以看到并没有出现乱码 这里听不懂的 就懂了

3.数组a1就是把a1看成了一个字符串 这个时候系统会自动在数组的后面加一个‘\0’ 不需要我们手动加 还要注意一点就是数组的长度要比我们存进去的字符串的长度大 因为得给‘\0’ 留一个位置啊 它可是大哥啊

4.数组a2与a1一样 所以可以看到  当要声明一个字符串的时候 加不加{ }都无所谓 

5.数组a3 这个数组可以发现仅仅声明了 并没有初始化 下面是他的初始化代码

 

 

 gets函数就是用来初始化这个a3数组的 通过代码可以看到这个函数的用法 原理就是咱们自己输入

一个字符串然后存在a3里 但是记住输入的字符串长度不可以超过14 因为要给‘\0’ 留一个位置啊 很显然 gets函数 也是自动在字符串的后面补个‘\0’ 没有‘\0’ 怎么能叫做字符串呢

puts函数用来打印字符串 当然你也可以用printf函数 但是puts函数打印完一个字符串会换行

来看这段代码的执行结果:

很显然咱们输入zsm了zsm 

再来看看用printf打印字符串 

很显然打印完字符串的时候没有换行 而且我们要用“%s” 去打印字符串 同时可以发现 我们只写了a3 就打印字符串了 所以当我们打印字符串时 传入字符串的首地址就会打印字符串了 直到‘\0’ 为止

6.数组a4 下面是他的初始化代码:

 

EOF 这里就不深说了 我告诉大家怎么用 就是咱们不是输入字符串吗 当你不想输的时候 就先回车 在 ctrl + z 回车 (重复三次就完事了)

再说一个细节 就是scanf函数不接收空格 但是它可以补‘\0’  当前面是%s的时候

来看执行结果

^Z 就是ctrl + z啦

其实还有另一种写法

这种就不需要 ctrl + z那种操作啦

来看执行结果

可以看到 我输入了zsm zsm

但是只打印了zsm 因为scanf函数不接收空格

所以当有空格的时候 scanf函数 就停止输入了

7.数组a5

 这个也一样用到了EOF  但是这个不需要重复操作ctrl + z 只需要一次 所以为了好记 大家就记住 遇到EOF 想要结束直接回车然后重复ctrl + z + 回车就完事了直到结束来看执行结果

可以看到在输出完zsm 之后又来一堆乱码 这就是 没有  ‘\0’  的缘故 系统读到了 没有初始化的部分 

来介绍一种解决办法 来看代码

就是按照常规打印数组的方式 打印 有几个打几个

部分全部代码:

 

这里并没有头文件大家自己添加吧 

输出结果:

总结: 

本期内容到此结束啦

大家每天进步一点点就好啦

持续关注我的数组内容哦

再送大家一句话 锲而舍之,朽木不折;锲而不舍,金石可镂

散会!!!

 

 

 

 

 

 

 

 

 

http://www.lryc.cn/news/257114.html

相关文章:

  • Redis 持久化 —— 超详细操作演示!
  • 使用Java实现桶排序算法
  • 5.题目:编号1624 小蓝吃糖果
  • 基于SpringBoot+thymeleaf协同过滤算法山河旅游推荐系统(Java毕业设计)
  • TypeScript 之 console的使用
  • 西南科技大学C++程序设计实验十(函数模板与类模板)
  • Python 解析JSON实现主机管理
  • 一体化污水处理设备材质怎么选
  • 德国进口高速主轴电机在机器人上的应用及选型方案
  • 【软考中级——软件设计师】备战经验 笔记总结分享
  • 146. LRU 缓存 --力扣 --JAVA
  • 【C++】POCO学习总结(十):Poco::Util::Application(应用程序框架)
  • 探索医学影像:如何通过ROI灰度直方图和ROI区域方格图揭示隐秘细节?
  • SASS基本语法总结
  • 【C++】简单工厂模式
  • el-tree数据量过大,造成浏览器卡死、崩溃
  • 2024 年甘肃省职业院校技能大赛中职组 电子与信息类“网络安全”赛项竞赛样题-A
  • 面向LLM的App架构——业务维度
  • ElasticSearch之cat plugins API
  • 【小米电脑管家】安装使用教程--非小米电脑
  • 视频讲解|基于多目标粒子群算法的配电网储能选址定容
  • Android 13 - Media框架(22)- MediaCodec(三)
  • git提交报错 fatal: LF would be replaced by CRLF in package-lock.json
  • 卷积详解和并行卷积
  • c#生成二维码二维码中间添加定制LoGo
  • 设计CPU功能的数字电路
  • 在windows下编译libiconv库
  • html,css,开发知识,调试知识
  • Vulnerability: File Upload(Medium)--MYSQL注入
  • 短视频账号剪辑矩阵+无人直播系统源头开发