Практически ничего.
Во-первых, помните, что строковые литералы, такие как "12345"
, имеют дополнительный «нулевой» байт в конце. Таким образом, вместо обработки инициализации массива "12345"
массивом из 5 элементов, на самом деле это массив из 6 элементов, поэтому этот оператор инициализации более уместен:
char ST1[6] = "12345";
Или просто:
char ST1[] = "12345";
// где размер "6" автоматически выводится.
Что эквивалентно:
char DST1[] = {0x31,0x32,0x33,0x34,0x35,0x00};
И когда у вас есть массив из 6 элементов, вы можете передать его, как если бы он имел только 5:
Итак, если у вас есть код, который ожидает работать с массивом из 5 символов:
void foo(char DST1[])
{
for(int i = 0; i < 5; i++)
{
process(DST1[i]);
}
}
Вы можете вызвать его следующим образом:
char ST1[]="12345";
foo(ST1);