char s[10] = "Test";
剩余的字符(在“测试”和终止 null 之后)是如何初始化的? (定义了吗?)
背景
我这样做是为了将自定义的固定宽度(并忽略) header 写入 STL file .但我不希望在剩余空间中有随机/未初始化的字节。
最佳答案
对于不是所有成员都被显式初始化的任何数组(或结构)的一般规则是,其余的被初始化“就好像它们具有静态存储持续时间”。这意味着它们被设置为零。
所以它实际上可以很好地编写像这样的奇怪的东西:char s[10] = {'T','e','s','t'};
。由于剩余字节设置为零,因此第一个字节将被视为空终止符。
关于c++ - 定长char数组用短字符串初始化时,剩余空间如何初始化?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66816335/