请问这两个形式的代码有啥区别?

img

两个语言是等价的,都是定义大小为5个字符的字符数组,并初始化各元素为'a', 'b', '\0', '\0', '\0'
https://en.cppreference.com/w/cpp/language/aggregate_initialization#Character_arrays

没啥区别

初始化字符数组有两种方法:
一种是:char array[10]={"hello"};
另一种是:char array[10]={'h','e','l','l','\0'};
第一种方法用途较广,初始化时,系统自动在数组没有填值的位置用,'\0'补上。另外, 这种方法中的花括号可以省略,即能表示成:char array[10]="hello";
总结来说就是,两种表达方式实质上没啥大的区别,就是初始化字符数组的两种方式罢了。

以上仅供参考,如有任何疑问,可以评论回复,看到即回。
希望对题主有所帮助!可以的话,点个采纳!

第一个是字符数组,第二个是字符串
你这样定义都没有满,可以说区别不大
但当你在arr2[5]里面定义5个字符的时候,末尾是不会带\0的
在arr3[5]里面用双引号定义4个字符的时候,字符串末尾会加上一个\0