Inicializace řetězců
Pole znaků (nebo širokých znaků) lze inicializovat řetězcovým literálem (nebo širokým řetězcovým literálem).Příklad:
char code[ ] = "abc";
inicializuje pole code jako pole znaků o čtyřech prvcích.Čtvrtý prvek je znak Null, který ukončuje všechny řetězcové literály.
Seznam identifikátorů může dosahovat maximálně délky počtu identifikátorů, které mají být inicializovány.Zadáte-li velikost pole menší než řetězec, jsou přesahující znaky ignorovány.Například následující deklarace inicializuje pole code jako pole znaků o třech prvcích:
char code[3] = "abcd";
Do pole code jsou přiřazeny pouze první tři znaky inicializátoru.Znak d a znak Null ukončující řetězec jsou ignorovány.Povšimněte si, že tím dojde k vytvoření neukončeného řetězec (tedy řetězce bez hodnoty 0 označující jeho konec) a k vygenerování diagnostické zprávy, která tuto situaci oznamuje.
Deklarace
char s[] = "abc", t[3] = "abc";
je shodná s deklarací
char s[] = {'a', 'b', 'c', '\0'},
t[3] = {'a', 'b', 'c' };
Je-li řetězec kratší než zadaná velikost pole, jsou zbývající prvky pole inicializovány na hodnotu 0.
Specifické pro Microsoft
V jazyce Microsoft C mohou být řetězcové literály dlouhé až 2048 bajtů.
Specificka produktu Microsoft END