簡體   English   中英

將char數組初始化為'\\ 0'時會發生什么?

[英]What happens when a char array is initialized to '\0'?

我有一個大小為512的字符數組ie

char buffer [512];

某個點之后的此變量被修改為此

buffer [40] = '\0';

這個賦值對變量做了什么? 它是否將數組中的前40個char初始化為null?

不會。它將值NUL存儲在陣列中的第41個位置。

將前40個字符初始化為NUL

memset(buffer, '\0', 40);

要在編譯時將整個緩沖區初始化為NUL,請嘗試

char buffer[512] = {0}; 

要么

char buffer[512] = "";

要在運行時初始化它,請嘗試

memset(buffer, '\0', sizeof (buffer));

分配第41字符陣列中,以\\0 因此,現在字符串由字符在數組的前40個元素中表示的內容組成,即0到39個索引(假設在任何前面的元素中沒有其他NUL字符 - 謝謝Kerrek SB !!)。
希望這可以幫助!

它將字符'\\0' (即NUL字符)分配給第41個數組元素。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM