C中的"{0}"是什么?

wiz*_*tjh 3 c

这是什么char buf[MAXDATASIZE] = { 0 };{0}手段?

试图将其打印出来,但它什么都没打印出来.

#include <stdio.h>

int main(void)
{
        char buf[100] = { 0 };
        printf("%s",buf);
        return 0;
}
Run Code Online (Sandbox Code Playgroud)

Oli*_*rth 12

这只是一个数组的初始化列表.所以它非常像普通的语法:

char buf[5] = { 1, 2, 3, 4, 5 };
Run Code Online (Sandbox Code Playgroud)

但是,C标准规定如果在初始化列表中没有提供足够的元素,它将默认初始化其余元素.因此,在您的代码中,所有元素都buf将最终初始化为0.

printf不显示任何内容,因为buf它实际上是一个零长度的字符串.