![算法训练营:入门篇(全彩版)](https://wfqqreader-1252317822.image.myqcloud.com/cover/905/51893905/b_51893905.jpg)
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人
1.7.1 一维数组
1.静态定义
一维数组的静态定义格式如下图所示。
![](https://epubservercos.yuewen.com/B6CE70/30655059804960606/epubprivate/OEBPS/Images/48757_25_2.jpg?sign=1739190430-78eRO6b3jT6MDZKNqzyIj9kVJ3DoHpD4-0-cbbe49d1a346fc885233f4da1307650f)
数组长度必须是整型常量,不能是变量,必须是已知的数值。
• 可以在定义数组时对数组进行初始化。
![](https://epubservercos.yuewen.com/B6CE70/30655059804960606/epubprivate/OEBPS/Images/48757_25_3.jpg?sign=1739190430-HCs1nVcz5oxDITXiG1UDoJgOBF6Syi1a-0-cff21bb23799d62f9eada1401a8690b4)
• 在定义并初始化数组时,可以不指定其长度。
![](https://epubservercos.yuewen.com/B6CE70/30655059804960606/epubprivate/OEBPS/Images/48757_26_1.jpg?sign=1739190430-KbyiWnn42MELVi7BZOKJHq9G7sPfcZBA-0-e7bf4e94067438bbdf85e572f1b952d5)
• 在定义数组时可以对数组进行整体赋值,在其他情况下不可以对数组进行整体赋值。
![](https://epubservercos.yuewen.com/B6CE70/30655059804960606/epubprivate/OEBPS/Images/48757_26_2.jpg?sign=1739190430-zjHjFqoaraIcwW9UmmAWMFysAWNZ5IkD-0-0df385808dd9a382ab96d11186a20813)
• 不可以在数组变量之间赋值。
![](https://epubservercos.yuewen.com/B6CE70/30655059804960606/epubprivate/OEBPS/Images/48757_26_3.jpg?sign=1739190430-TwfKdTXMP0HLsIPSPLWqtgpcgRYwrx2b-0-b0640da2189559bfab91c7dbd0e4201c)
• 系统不会检查下标是否有效。
![](https://epubservercos.yuewen.com/B6CE70/30655059804960606/epubprivate/OEBPS/Images/48757_26_4.jpg?sign=1739190430-dTOXwPllin3DFtACxP6fXM51Rb1VGfkx-0-8a901f27e4c421524e33bdee5b7fc0d7)
• 对于特别大的数组,要将其定义在主函数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=1739190430-6TyrQllzpesWMxkeoLeb99jW3np0hiRB-0-53ba4c5e61551f54472cd1bcccc194a4)
2.动态定义
动态定义数组指在程序运行过程中动态分配内存空间且定义数组。一维数组的动态定义格式如下图所示。
![](https://epubservercos.yuewen.com/B6CE70/30655059804960606/epubprivate/OEBPS/Images/48757_26_6.jpg?sign=1739190430-S0rwDHQ80oa2aBsPwhJbBmjL5qzoW7xC-0-aafa14a6165e442fe803711a9ebcf1b1)
对于动态定义数组,在使用完毕后需要使用delete释放其占用的内存空间,格式:delete[]数组名。
![](https://epubservercos.yuewen.com/B6CE70/30655059804960606/epubprivate/OEBPS/Images/48757_27_1.jpg?sign=1739190430-VlRfahrYRSvjgY0GdTaKiQ8XR1FfYLwk-0-24f0f3d1dae6018c2e00c714d9a92523)
注意
• 不要使用delete释放未使用new分配的内存空间。
• 不要使用delete释放同一内存空间两次。
• 对于使用new为一个实体分配的内存空间,需要使用delete释放。
• 对于使用new为一个数组分配的内存空间,需要使用delete[]释放。
• 对空指针使用delete是安全的。