我有兩個關於char數組的問題。C++ - char數組和空字符
從代碼波紋管,因爲
arr
是const
,爲什麼不編譯器給我一個錯誤,因爲我重寫呢?char arr[5]; // arr is a const pointer to (*)[5] array cin>>arr; //
當我初始化字符數組是這樣的:
char arr[5]={'h','i'};
,如果我這樣做:
cout << arr << "something here \n";
它將打印
hisomething here
。我以爲它應該打印出來hi something here
與3 witespaces。
但如果我這樣做:
for(int i = 0; i < 5; i++){ cout << arr[i]; }
它將打印出3個空格。
第二種情況似乎證明編譯器不會添加任何空字符。那麼編譯器如何忽略這3個空格呢?
如果他們將初始化爲0,那麼爲什麼在第二個代碼中,他們被視爲空白? – AlexDan 2012-04-21 08:23:37
你爲什麼認爲他們被視爲空白?嘗試將輸出重定向到文本文件,然後使用十六進制編輯器檢查。 – 2012-04-21 08:26:00
我複製了你的代碼,它打印你喜歡X,而不是hiX。 – AlexDan 2012-04-21 08:26:27