- 算法训练营:入门篇(全彩版)
- 陈小玉
- 489字
- 2024-09-19 17:41:41
1.7.1 一维数组
1.静态定义
一维数组的静态定义格式如下图所示。
![](https://epubservercos.yuewen.com/B6CE70/30655059804960606/epubprivate/OEBPS/Images/48757_25_2.jpg?sign=1739605266-mjE8jZMeJLX9qPhE8HehZtW0uW8ENRdi-0-27f59f5133d0465ab73f4679d892c20a)
数组长度必须是整型常量,不能是变量,必须是已知的数值。
• 可以在定义数组时对数组进行初始化。
![](https://epubservercos.yuewen.com/B6CE70/30655059804960606/epubprivate/OEBPS/Images/48757_25_3.jpg?sign=1739605266-MwqIxQLlGLN3q6PidYy1aOck3U9KmrsT-0-c0a909f74b148fdf5d355600cc00b153)
• 在定义并初始化数组时,可以不指定其长度。
![](https://epubservercos.yuewen.com/B6CE70/30655059804960606/epubprivate/OEBPS/Images/48757_26_1.jpg?sign=1739605266-BnnOOENXePEg6hG1sivUqQhntSeVfPxP-0-4f603ccb88e07dd5d8bdcd8b179f2f96)
• 在定义数组时可以对数组进行整体赋值,在其他情况下不可以对数组进行整体赋值。
![](https://epubservercos.yuewen.com/B6CE70/30655059804960606/epubprivate/OEBPS/Images/48757_26_2.jpg?sign=1739605266-xcwLqcCRBEc4jwrWJnOXyDo23sqAkoqv-0-b872f8da2abded3437c9eb4f53928b4e)
• 不可以在数组变量之间赋值。
![](https://epubservercos.yuewen.com/B6CE70/30655059804960606/epubprivate/OEBPS/Images/48757_26_3.jpg?sign=1739605266-3HJftaqVfUDZMCfeO14A3Y03IgPdcg2F-0-3729b74426c2d67030516fed975748bf)
• 系统不会检查下标是否有效。
![](https://epubservercos.yuewen.com/B6CE70/30655059804960606/epubprivate/OEBPS/Images/48757_26_4.jpg?sign=1739605266-U8Jh9dSUflAjLcWQ4xtw8Rbn8pkYHpqE-0-405cff34d0598c6d01053337be50c669)
• 对于特别大的数组,要将其定义在主函数main()外,若将其定义在主函数main()内,则会导致异常退出。
训练17(B2064):斐波那契数列的第1个数和第2个数都为1,接下来的每个数都等于前面两个数之和。下面的程序包含n行输入,每行都为一个正整数k(1≤k≤30),请输出斐波那契数列中的第k个数。
![](https://epubservercos.yuewen.com/B6CE70/30655059804960606/epubprivate/OEBPS/Images/48757_26_5.jpg?sign=1739605266-BQN99PvmvY9rK0ohD8DLEmvuet1zNKrA-0-2d5fa228885bb9d219b111d8996f3531)
2.动态定义
动态定义数组指在程序运行过程中动态分配内存空间且定义数组。一维数组的动态定义格式如下图所示。
![](https://epubservercos.yuewen.com/B6CE70/30655059804960606/epubprivate/OEBPS/Images/48757_26_6.jpg?sign=1739605266-Eqr81YMzymtEB1vEgXWJCF8YDKAWlolb-0-cd9788f7ebca0d3e6b5d4c84fc037d99)
对于动态定义数组,在使用完毕后需要使用delete释放其占用的内存空间,格式:delete[]数组名。
![](https://epubservercos.yuewen.com/B6CE70/30655059804960606/epubprivate/OEBPS/Images/48757_27_1.jpg?sign=1739605266-T9L30PQfClk6UaWMzC9PTqh2j0NfGiWK-0-bc92e83184cf6aa5fd62359dc195615e)
注意
• 不要使用delete释放未使用new分配的内存空间。
• 不要使用delete释放同一内存空间两次。
• 对于使用new为一个实体分配的内存空间,需要使用delete释放。
• 对于使用new为一个数组分配的内存空间,需要使用delete[]释放。
• 对空指针使用delete是安全的。