2007/08/22

Array initialization in C++

在宣告array時, 要嘛所有element都會被initialize, 要嘛就都不做initizlize.
不能只有一部分element被initialize.
但array assignment時則無此限.
因此,

含義是第一個element被assign to 0, 其餘的element則被initialize to 0.
而不是所有element都被initialize to 0唷.

再看

則並沒有assign任何值, 但所有的element都被initalize to 0. 所以看似與前述的效果是相同的,
但含義並不同.

前述觀念釐清, 便不會被下行code混淆..

含義是第一個element被assign to 1, 其餘的element則被initialize to 0.
而不是所有element都被initialize to 1唷.

還有一個array initialization的方法, 是使用memset()

但只僅限將int array初始為0, 也就是第二個參數不能為0之外的數.

原因下面這個網頁有介紹
http://www.ednchina.com/blog/fpga2006/16745/message.aspx

簡單來講, 是因為 memset()主要用來初始char array, char是1 byte, int則是4 byte,
所以在初始int array的element時會出問題.

用在初始字串時,memset()則相當常用。(string.h的method,本來就是用來處理char*的吧!)

結果:ccccc


清除字串值時,也相當方便。

結果: (五個空白)

No comments:

Post a Comment