int* nums[nNums] = {0, 0, 0}, d[nNums];
Как @Asha уже говорила, что nums
- это массив из 4 целочисленных указателей, каждый из которых инициализирован значением NULL.
Интересный вопрос, который можно задать здесь: каков типпеременная d
?
Это массив из 4 целочисленных указателей?
Или
Это массив из 4 целых чисел?
Итак, ответ: это массив из 4 целых чисел.*
связан только с первым объявленным символом nums
.
Эквивалентное объявление будет следующим:
int* nums[nNums] = {0, 0, 0};
int d[nNums]; //not int* d[nNums];
Чтобы избежать такой путаницы, я предпочитаю писать такое объявление в несколько строк.Если вы хотите объявить в одной строке, второе объявление будет немного лучше:
int* nums[nNums] = {0, 0, 0}, d[nNums]; //old one!
int *nums[nNums] = {0, 0, 0}, d[nNums]; //new one. note the position of *