Sdílet prostřednictvím


Inicializace řetězců

Pole znaků (nebo širokých znaků) lze inicializovat textovým literálem (nebo širokým textový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 textové 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. Tím dojde k vytvoření neukončeného řetězce (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

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 textové literály dlouhé až 2048 bajtů.

END Microsoft Specific

Viz také

Inicializace