c语言一维数组总结详解

2023-12-14 08:29:20

目录

介绍:

一维整型数组:

声明:

初始化:

打印输出:

输出结果:

浮点型数组:

代码:

运行结果:

补充:

一维字符数组:

字符数组声明及初始化:

部分全部代码:

总结:

介绍:

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

一维整型数组:

声明:

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类型的数字?

然后 如果咱们想要用数组里的第一个数字1?我们要取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’??的缘故 系统读到了 没有初始化的部分?

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

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

部分全部代码:

?

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

输出结果:

总结:?

本期内容到此结束啦

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

持续关注我的数组内容哦

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

散会!!!

?

?

?

?

?

?

?

?

?

文章来源:https://blog.csdn.net/bodyzsm/article/details/134880301
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。