C语言中数组是否以NULL结尾?

Pra*_*hta 1 c arrays null

我是 C 初学者,有人要求我在不使用sizeof运算符的情况下计算数组的大小。所以我尝试了这段代码,但它只适用于奇数个元素。所有数组都像字符串一样以 NULL 结尾吗?

#include <stdio.h>
void main()
{
    int a[] = {1,2,3,4,5,6,7,8,9};
    int size = 0;
    for (int i = 0; a[i] != '\0'; i++)
    {
        size++;
    }
    printf("size=%d\n", size);
}
Run Code Online (Sandbox Code Playgroud)

Sou*_*osh 5

不,一般来说,数组没有默认的哨兵字符。

作为一种特殊情况,以空终止符(ASCII 值 0)结尾的数组称为字符串。然而,这是一个特殊情况,而不是标准。