提问者:小点点

为什么它不将它初始化为一个静态整数数组?


为什么在这种情况下两个数组的作用不同?

#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"; 
}

共1个答案

匿名用户

它确实被初始化为零。因为它是一个字符数组,所以0只是\0字符。将该行从

cout << a[i] << "\n"; 

std::cout << '[' <<a[i] <<']' <<std::boolalpha<< (a[i] == '\0') << "\n"; 

帮助确认你所期望的是真的。