Использование 1-элементного массива означает, что код, который его использует, не должен меняться, если количество элементов в массиве увеличивается.
Преимущества бывают в сочетании с другими методами, а не конкретно из-за использования 1-элементный массив
Например, если что-то вроде
int npt[] = {20};
последующий код может сделать
for (i = 0; i < sizeof(npt)/sizeof(*npt); ++i)
{
// do something worthwhile with npt[i]
}
Если впоследствии определение npt[]
изменено на
int npt[] = {20, 30, 40};
тогда последующий код может по-прежнему работать по назначению.
Принимая во внимание, что, если мы указали с int npt = {20};
, «последующий код» необходимо будет переписать, если в какой-то момент времени его необходимо расширить, чтобы работать с массивом из двух или более значений.
Очевидно, что это лошади для курсов. Такие методы будут использоваться в конструкциях, которые основаны на наличии 1 или более значений в массиве (и генераторами кода, которым дана такая спецификация дизайна).
Одна идея - в будущем она может быть расширена до нескольких членов без изменения какого-либо другого кода. –