你好, 欢迎｡
在这堂课中, 我想谈谈 关于初始化数组｡
我们知道如何使用数组, 我们知道如何创建数组｡
但具体来说, 如果你想 为数组指定特定的初始值, 该如何操作呢？
因此, 您需要将初始 数组元素的值｡
你之所以要
将初始值赋给数组甚至变量是因为 这使得更容易检测出什么时候出了问题｡
如果没有初始数据 而您试图执行某些操作, 则可能会导致程序出现问题｡
所以初始化是一个很好的 你总是想去做｡
通过使用数组, 数组中很多很多元素
所以有一种特殊的方式 您可以初始化这些元素｡
有不同的 您可以使用语法
但初始化是件好事 你总是想这么做｡
我想简单谈谈 你可以做数组因为有不同的方法｡
就像你可以把初始值 变量的值,
在声明它们时, 也可以将
数组元素的初始值｡
若要初始化数组的值, 请 只需在列表中提供值｡
该列表以逗号分隔 并且整个列表被括在一对大括号内｡
它看起来像这样｡
在这里, 我们创建了一个 命名计数器数组
它的类型是int, 它有5个元素.
然后我们要做的是 有花括号,
这里没有使用任何索引
你会注意到我们刚刚 以逗号分隔的数字｡
它所做的就是 计数器数组中的所有5个元素都设置为0,
则每个元素都为0｡
如果我们有另一个数组 这个整数数组的大小也是5
赋值运算符后的大括号0逗号1逗号2逗号
3逗号4, 那是在干什么？
它给第一个整数赋值 元素整型数组为0,
第二个元素为1, 第三个 将第一个元素分配给2, 将第四个元素分配给3,
将第五个元素分配给4｡
这是一个很好的语法, 你可以
在声明数组时立即初始化它, 只需提供 用逗号分隔的数字, 并且您希望这样做｡
也没有必要完全 初始化整个数组｡
所以在前面两个例子中 示例中,
我们初始化了大小为5的数组的所有5个元素｡
如果您只想 初始化某些值？
如果提供初始值 不等于数组大小的数字, 则 其余值设置为0｡
所以如果你做一些 这里有一个名为sample
data的数组 流, 它包含500个元素｡
但在花括号里, 所有 这是我们的三大要素｡
这是要做的 它将初始化样本的前3个值
数据阵列设置为100 300 500｡ 5.
然后剩下的5497 元素都是0
这样你就不用 请指定所有内容｡
还有一个概念 指定初始值设定项｡
我相信这是在C99中介绍的｡
这是一个很好的小功能 可以挑选要初始化的元素｡
我认为在C99中, 他们添加了它, 然后在C11中, 他们将其设为可选｡
所以取决于什么编译器 你可能会也可能不会｡
但我想提一下 因为它在某种程度上是常见的｡
某些编译器不允许 你在C99之后做这个｡
但这很酷因为你可以 实际上只是挑选｡
所以你可以把一个元素 一对括号中的数字, 然后指定数组元素
可以初始化, 而且可以按任何顺序进行｡
这里有一个例子｡
同样, 我们有了示例数据数组｡
它的类型为float｡
它的大小是500｡
但在我们的卷毛里面 大括号, 我们还有其他索引｡
我们的括号在2中, 表示 方括号2减2等于500｡ 5, 减1等于300｡
0和0以下的数字等于100｡ 0.
它们之间用逗号隔开｡
它所做的就是指定 和上一个例子中的一样, 但是
以不同的顺序进行｡
但你还是会 具有元素0或第一个元素等于100, 第二个
元素等于300并且第三专辑等于500｡
5.
但我们指定了 要初始化的索引｡
另一个例子是int 名为arr数组, 大小为6｡
当我们宣布它的时候
将作为最后一个元素的第五元素初始化为212, 所有的元素都是0
这是一个传统的 在初始化中, 您只需声明数组的名称并
您提供了许多不同的数字｡
在本例中, 我们声明 一个数组,
它会储存每个月的所有日子｡
所以当我们经历这些 数组,
然后打印出来, 这是非常常见的, 您通常会使用 循环打印出数组中的元素,
或者至少对它们进行迭代｡
我们在这里做的是 打印出每个月的天数｡
让我们用代码来演示一下 块来显示输出｡
这是我们的例子｡
我们还有几天几个月 我们正在初始化数组｡
要 31, 下一个28, 下一个31｡
你也注意到在第10行, 使用define创建常量｡
顺便说一下, 在c中, 您还可以 使用常量关键字,
我们将讨论这个关键字以及其他内容, 创建常量的另一种方法｡
但现在我们只是在讨论
数组和初始化它们, 非常容易做到, 用大括号中的逗号表示｡
这将展示的是
它将遍历数组并查看 索引加1, 然后是天数索引｡
所以它会说第一个月 有多少天取决于值｡
所以我们要访问索引 数组名称, 然后是下标值､ 索引
值, 我们使用的是数组｡
所以这是一个变量 在每次迭代中发生变化｡
所以我们试着运行这个｡
您要输出的内容 第一个月有31天, 第二个月有28天
一月二月三月四月, 但它只是经过 数组并输出日期｡
所以这证明了 初始化工作｡
再说一次, 你会想 以初始化数据｡
现在我们来谈谈另一个 示例并讨论重复初始化元素｡
这是另一个例子 但在本例中我们将使用指定的初始化器｡
我们将指定 我们要初始化的元素｡
所以你应该
注意这里是一个说到天和月 我们正在进行初始化｡
你会注意到在卷发里面
第一个元素得到31, 第二个元素得到28, 但是
括号里的值是4, 它的值是31｡
然后是逗号 元素5会得到30,
元素6会得到31
然后我们有1｡
这意味着我们现在要 覆盖28, 我们实际上要把29,
作为29｡
所以这里有点多余｡
我们不需要这么做,
但你真的要去掉sub-1, 因为31和28 sub-1已在此处分配｡
但看起来我们是在说 sub-1也可以是值29｡
所以这只是使用 指定的初始化器｡
如果我们想 重复相同的值｡
现在在c中, 您可以随时 如果指定0,
则初始化相同值的整个数组｡
您始终可以初始化 它就像null参数一样｡
但除此之外, c不 提供用于初始化数组任何快捷方式机制
元素, 至少在C89中没有｡
在C11中, 您可以看到 可以使用括号将相同的值初始化为整个数组
没有下标只有数字｡
但现在在C89和C99 无法指定重复计数｡
没有办法说所有的元素 应该是55｡
所以如果一开始就想要
将样本数据的所有500个值设置为1, 则所有500个值都将 被显式地分配这将是一个很大的麻烦｡
所以你最终要做的就是 只需将它们放入循环中即可｡
最简单的迭代方式 通过使用循环数组｡
这里有一个简单的例子 如何将所有元素初始化为相同的值｡
不过,
在这种情况下, 我们 将第一元素初始化为0149和16｡
所以这只是初始化 将所有其余元素设置为一个值｡
基本上是 使用索引5到9的第10个元素｡
这就是for循环的作用｡
第一个for循环是说 我们要把5到9的元素初始化为I乘以I
然后第二个 循环, 它应该缩进,
这样更难阅读｡
第二个for循环实际上是
遍历整个数组, 只将数据显示给 显示最后5个值实际上已初始化｡
所以每当你想重复 相同值或初始化为不同值,
只需使用循环｡
同样, 初始化也很重要｡
您将需要初始化, 因此 确保这种语法是您第二天性,
因为我们将 在c中大量使用数组｡