如果在 C 中字符串数组以 null 终止,为什么其他数据类型的数组不以 null 终止?

cod*_*ogy 8 c arrays string

C 中的字符串或字符数组必须以 null 结尾才能知道它们的结束位置。为什么同样的规则不适用于其他类型的数组?例如。计算机如何知道整数数组的结束位置?整数/浮点数/双精度数组在内存中的表示方式有区别吗?

dbu*_*ush 2

C 中的字符串是一个char以 null 结尾的序列。这是数组的特例char

您可以拥有一个不以charnull 结尾的数组。例如:

char x[] = { 'a', 'b', 'c' };
Run Code Online (Sandbox Code Playgroud)

数组通常表示为内存中基本类型的连续序列。该语言本身不会跟踪数组有多大,您需要自己执行此操作。