c++是功能强大的编程语言,但它也有漏洞,最大的漏洞就是列表越界。
看看这段代码:
a = []
for i in range(3):
n = input("输入:")
a.append(n)
for i in range(4):
print(a[i])
python语言下,你会看到:
输入:jdnjd
输入:dfkndjkd
输入:dfff
jdnjd
dfkndjkd
dfff
Traceback (most recent call last):
File "C:/Users/CHYYY/Desktop/编程/python/项目/moni.py", line 6, in <module>
print(a[i])
IndexError: list index out of range
很简单,列表越界。
但如果变成C++,代码:
#include <iostream>
using namespace std;
int main()
{
int shu[3];
for (int c = 0;c <= 4;c++)
{
int ji;
cin >> ji;
shu[c] = ji;
}
return 0;
}
它并不会报错。为什么呢?我们先从内存说起。
计算机的内存分为主存储器和辅助存储器。主存储器是计算机运行程序时临时存储的