C语言中的括号char数组初始化

fab*_*szy 5 c string char

现在我遇到了如下问题:

int foo(void){
    char a[10] = "foo";
    char b[10] = {"foo"};
    ...
}
Run Code Online (Sandbox Code Playgroud)

我使用gdb来检查'a'和'b'的内容,它们看起来完全一样.

变量a和b之间有什么区别吗?

Yu *_*Hao 6

他们是一样的:

C11§6.7.9初始化

字符类型数组可以由字符串文字或UTF-8字符串文字初始化,可选地用大括号括起来.字符串文字的连续字节(如果有空间或数组大小未知,则包括终止空字符)初始化数组的元素.