本蒟蒻目前正在学习《深入浅出》,最近看到高精度这一章,其中有一段代码(原题P1601)关于高精度加法如下:
#include <iostream>
#incluide <string>
#include <algorithm>
#define maxn 520;
using namespace std;
int a[maxn], b[maxn], c[maxn];
int main(void)
{
string A, B;
cin >> A >> B;
int len = max(A.length(), B.length());
for(int i = A.length() - 1, j = 1; i >= 0; i--, j++) {
a[j] = A[i] - '0';
}
for(int i = B.length() - 1, j = 1; i >= 0; i--, j++) {
b[j] = B[i] - '0';
}
for(int i = 1; i <= len; i++) {
c[i] += a[i] + b[i]; // 此处直接对c[i]进行增加的操作
c[i + 1] = c[i] / 10;
c[i] %= 10;
}
if(c[len+1]) len++;
for(int i = len; i >= 1; i--)
cout << c[i];
return 0;
}
为什么代码中的数组c没有初始化却可以直接进行增加的操作呢QWQ(虽然只有c[1])运行的时候这段代码也没用报错也......