Невозможно преобразовать из 'int *' в 'int []'?

Я знаю, что это может быть общий вопрос, но я попытался выполнить поиск, но все еще не могу найти четкого ответа.

У меня есть следующий код:

int* f() {
    int a[] = {1,2,3};
    return a;
}

int main() {

    int a[] = f(); // Error here

    getch();
    return 0;
}

Этот код дает сообщение об ошибке: « Невозможно преобразовать из 'int *' в 'int []' »

Мне это показалось довольно странным, потому что я читал, что указатель и массив похожи. Например, мы можем использовать [i] вместо * (a + i). Кто-нибудь может дать мне четкое объяснение, пожалуйста?

9
задан Heisenbug 27 June 2011 в 13:04
поделиться