char 和 char 初始化的問題

2021-04-21 14:17:57 字數 398 閱讀 5062

如下**:

1.char string[10] = ;

2.char string[10];

string[0] = '/0';

號稱是這兩種方式都可以,我使用的是第一種。

第一種方法會使得字串陣列宣告的時候每一位都被置空;

第二種方法是用,將字串第一位置空,根據c標準,空字元被認為是字元陣列結束的標誌,所以這樣一來,字元陣列就被初始化為空了,不過這種方式在我的機器上沒有成功,表現為字元陣列的後面幾位中有隨機的字元。

再來說一下字元陣列要初始化的原因。其實我覺得所有的指標和陣列都應該初始化,因為剛分配給你的位址空間是動態分配的,其中有些位可能有你預料不到的內容,這會造成奇怪的錯誤。初始化了以後,連續的位址空間就都是你初始化過的內容了,就不會發生讀取到意料外的資料的情況了。

char 和char 的初始化

char str1 abcd char str2 abcd void reverse char input,int len 在呼叫reverse函式時.從形式上 reverse str1,5 和reverse str2,5 都沒有錯誤,傳入的引數都是char陣列的頭指標,但是實際操作時,不能採取st...

char 和char 的初始化

har str1 abcd char str2 abcd void reverse char input,int len 實際操作時,不能採取str1的初始化形式 1 char str1 abcd 含義是先新建乙個字串,內容是abcd,然後str1是乙個頭指標,指向這個串。但是這個新建串是作為con...

char 和char 的區別

1 char是乙個陣列定義,char 是指標定義 也稱char為靜態陣列,char 為動態陣列 2 指標和陣列的區別 1 指標和陣列的分配 陣列是開闢一塊連續的記憶體空間,陣列本身的識別符號 也就是通常所說的陣列名 代表整個陣列,可以使用sizeof來獲得陣列所佔據記憶體空間的大小 注意,不是陣列元...