Dlaczego zmienia wartość tablicy double const?

0
 #include <iostream>

using namespace std;
void wyswietl(const double *wskaznik, int ile);
int main()
{
    const double tablica[10] = {1,2,3,4,5,6,7,8,9,10};
    wyswietl(tablica,10);
}
void wyswietl(const double *wskaznik, int ile)
{
    for(int i = 0; i < ile; i++, wskaznik++)
    {
        wskaznik += 101;
        cout << *wskaznik << endl;
    }
}

Dlaczego zmienia się wartość w tablicy skoro jest typu const ?

1

Nie zmienia się wartość w tablicy, zmienia się wartość wskaźnika (przechodzi poza zakres tablicy, powodując przy okazji UB). Wróć do tutoriala na temat wskaźników.

1

Nie "przechodzisz na inny wskaźnik", ale zmieniasz wartość wskaźnika w bezsensowny sposób:

wskaznik += 101;

przez co ten już po pierwszej iteracji pętli, ten wskaźnik wskazuje w jakieś bezsensowne miejsce.

1 użytkowników online, w tym zalogowanych: 0, gości: 1