我有两个关于 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 个空格呢?