Konstruktor ifstream – nie rozumiem zapisu

0
ifstream (const char* filename, ios_base::openmode mode = ios_base::in);

Nie bardzo rozumiem zapis const char*. Jest to wskaźnik wskazujący na stałą znakową? Jak nazwa pliku może składać się jednego znaku? Nie powinna być to tablica? Może ktoś dokładniej wytłumaczyć mi jak mam rozumieć ten zapis?

1

W pierwszym lepszym tutorialu/kursie jest to wyjaśnione. Napisy w C to tablice znaków, a tablice są domyślnie przekazywane jako wskaźnik na ich pierwszy element. Tak więc jest to wskaźnik na c-string zawierający nazwę pliku, a konkretniej na jego pierwszy znak.

0

Jak nazwa pliku może składać się jednego znaku? Nie powinna być to tablica?

... a jednak może. Tablica ta powinna mieć znak zerowy na końcu łańcucha, więc jeden znak i '\0' to już dwa znaki.

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