این دو تا کد چه فرقی با هم دارن؟
char x[] = {'h', 'i'}; char x[] = "hi";
هیچ تفاوتی نداره. در استاندارد C این دو کد به علاوهی دو کد زیر یکی هستن
C
char x[3] = "hi"; char x[] = {'h', 'i', '\0'};