我有两个关于 char 数组的问题。
从下面的代码中,既然
arr是const,为什么编译器不给我一个错误,因为我正在重写它?char arr[5]; // arr is a const pointer to (*)[5] array cin>>arr; //当我像这样初始化一个 char 数组时:
char arr[5]={'h','i'};如果我这样做:
cout << arr << "something here \n";它会打印
hisomething here。我以为它应该打印出来hi something here有 3 个空位。
但如果我这样做:
for(int i = 0; i < 5; i++){ cout << arr[i]; }它将打印出 3 个空格。
第二种情况似乎证明编译器没有添加任何空字符。那么编译器如何忽略这 3 个空格呢?