为什么在这种情况下两个数组的作用不同?
#include <bits/stdc++.h>
using namespace std;
int main() {
char a[100] = {}; // all white spaces
int b[100] = {} ; // all 0
for(int i = 0; i < 100; i++)
cout << a[i] << "\n";
}
for(int i = 0; i < 100; i++)
cout << b[i] << "\n";
}
它确实被初始化为零。因为它是一个字符数组,所以0只是\0
字符。将该行从
cout << a[i] << "\n";
至
std::cout << '[' <<a[i] <<']' <<std::boolalpha<< (a[i] == '\0') << "\n";
帮助确认你所期望的是真的。