簡體   English   中英

是否在字符串結束后使用零/ null初始化char數組,此時還有剩余空間?

[英]Is a char array initialized with zeros/null after string end, when there's still space left?

考慮以下char數組:

char str[128] = "abcd";

是否所有剩余的未初始化的字符在數組的其余部分(從str[4]str[127] )零/ null填充?

是的,如果初始化程序中明確給出的元素少於聚合所包含的元素,則初始化其余元素,就好像聚合具有靜態存儲持續時間一樣。 對於整數類型(和char是一個),表示0。 該標准的相關部分是6.7.9(21):

如果括號括起的列表中的初始值設定項少於聚合的元素或成員,或者用於初始化已知大小的數組的字符串文字中的字符數少於數組中的元素,則聚合的其余部分應為隱式初始化與具有靜態存儲持續時間的對象相同。

字符串文字作為char數組的初始化者在這方面等同於大括號包含的初始化者。

是的,字符串文字初始值設定項與以下初始化程序相同:

char str[128] = { 'a', 'b', 'c', 'd', 0 };

缺少的數組元素是零初始化的,因此數組的其余部分全為零。

暫無
暫無

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

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