声明数组时在内部会发生什么?

时间:2019-09-30 13:12:30

标签: c

我很想知道当我声明一个数组,特别是在C(字符串)中以NULL终止的字符数组时到底发生了什么。我知道字符串只是一个以NULL结尾的数组,但是我为空间预留的其余元素会发生什么呢?例如,请考虑以下情形:

char buffer[10];

buffer[0] = 'h';
buffer[1] = 'i';
buffer[2] = '!';
buffer[3] = '\0';

上面是我们的字符串。但是“缓冲区”中剩余的6个存储单元的状态如何?它们在内部是二进制零状态吗?还是它们以某种未知状态“漂浮”? NULL终止字符是我相信的二进制零,因此编译器知道字符串的结尾。但是未初始化字节的值是多少?

我希望我的问题有意义。只是试图更好地了解计算机的内部工作原理。

0 个答案:

没有答案