Это инициализирует nhashprime
, а не i
. Партия int
применяется как к i
, так и к nhashprime
, но назначение относится только к nhashprime
. Код эквивалентен
int i;
int nhashprime = nextprime(2 * hashprime);
Как правило, не рекомендуется объединять несколько объявлений в одно, за исключением простого случая с простыми типами и без инициализации:
int i, j, k;
Обратите внимание, в частности, что маркеры указателя не распределяются по нескольким идентификаторам:
int *p, i;
следует избегать и эквивалентно
int *p;
int i;