Тема: Поясніть за масиви, та як їх передавати в функції
Хай. От зробили ми масив
int aa[] = { 1, 2, 3 };
або
int aa[3];
aa[0] = 1;
aa[1] = 2;
aa[2] = 3;
І ми можемо без проблем дізнатись про його довжину, за допомогою
sizeof(aa)/sizeof(aa[0])
Тобто, при виклику
sizeof(aa)
ми дізнаємось довжину масиву в байтах.
Але чому тоді, якщо ми передаємо цей масив в функцію
void show(int aa[])
{
std::cout << sizeof(aa) << std::endl;
}
То воно виводить лишень розмір елементу масиву?
Звісно, я десь чув, що ім'я масиву - це покажчик на перший елемент масиву, але звідки береться отой розмір масиву в байтах, якщо в функції його вже немає? де він зберігається, як?
Ми можемо передати масив, просто масив, в функцію, і дізнатись в тій функцію про довжину цього масиву?
p.s. з char'ом все зрозуміло, там масив закінчується, коли ми бачимо "\0", а в int'і є свій "\0"?