C中数组中的终止NULL

Ord*_*rdo 3 c string

我有一个简单的问题.
为什么有必要考虑字符数组(或简称字符串)中的终止空值而不是整数数组.所以,当我想要一个字符串来容纳20个字符时,我需要声明char string[21];.当我想声明一个包含5位数的整数数组时int digits[5];就足够了.这是什么原因?

wkl*_*wkl 7

如果你不想,你不必终止char数组NULL,但是当使用它们来表示字符串时,你需要这样做,因为C使用以空字符结尾的字符串来表示它的字符串.当您使用对字符串进行操作的函数(例如strlen字符串长度或printf用于输出字符串)时,这些函数将读取数据直到NULL遇到字符串.如果不存在,那么您可能会遇到缓冲区溢出或类似的访问冲突/分段故障问题.

简而言之:这就是C代表字符串数据的方式.