Только начал изучать С++ и наткнулся на две нелогичные вещи. Объясните если не трудно:
1. Почему такой код:
const double a[9]={1,2,3,4,5,6,7,8,9,10};
Вызывает ошибку: "избыточные элементы в инициализаторе для «const double [9]"
Я понимаю что можно записать вот так:
const double a[]={1,2,3,4,5,6,7,8,9,10};
и проблем не будет. Но и первый вариант должен быть верным.
2. Почему на массив int а[9] - sizeof(a) выдаёт только 36? Массив int на 10 элементов весит 40 байт, как ни крути. Предполагаю, что sizeof() находит адрес последнего элемента массива и вычитает его из первого - и получается 36. Но почему он не прибавляет оставшиеся 4 байта?
Думаю, по ходу изучения, я наткнусь ещё не на одну неточность.