• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Zmienna char - wskaźnik?

Object Storage Arubacloud
0 głosów
713 wizyt
pytanie zadane 4 kwietnia 2017 w C i C++ przez seba Dyskutant (8,900 p.)
Witam, czym się różni zapis:

char liczba[2]={"jeden","dwa"};

od

char *liczba[2]={"jeden","dwa"};

 

bo gdy wpisuje pierwszy zestaw(co prawda z tablicą 20) to program wywala ze za duza tablica zaś przy drugim sposobie działa.

3 odpowiedzi

0 głosów
odpowiedź 4 kwietnia 2017 przez Eryk Andrzejewski Mędrzec (164,260 p.)
wybrane 4 kwietnia 2017 przez seba
 
Najlepsza

Pierwszy zapis, czyli

char liczba[2];

jest to dwuelementowa tablica zmiennych typu char. Co to oznacza? Może ona przechowywać maksymalnie dwa znaki, nie może przechowywać dwóch napisów.

Drugi zapis, czyli:

char *liczba[2];

możemy zapisać też w inny, moim zdaniem lepszy i czytelniejszy sposób:

char* liczba[2];

Co widzimy? Mamy dwuelementową tablicę wskaźników na char. Wskaźnik na char może wskazywać na pierwszy element (znak) łańcucha znaków, jak tutaj:

char* string = "Ala ma kota";

Wskaźnik string wskazuje na adres, pod którym znajduje się literka 'A'.

Mamy więc tablicę dwóch wskaźników, które kolejno wskazują na dwa różne łańcuchy znaków (na ich początki).

 

+1 głos
odpowiedź 4 kwietnia 2017 przez unknown Nałogowiec (39,560 p.)
char *liczba[2]={"jeden","dwa"};

Nie powinno się skompilować(albo przynajmniej wyrzucić warning) na żadnym kompilatorze zgodny ze standardem C++

0 głosów
odpowiedź 4 kwietnia 2017 przez Evelek Nałogowiec (28,960 p.)
Pierwszy zapis to tablica jednowymiarowa typu char.

Drugi zapis to tablica dwóch wskaźników typu char.

char (*liczba)[2] oznaczałoby wskaźnik dwuelementowych tablic typu char.

Podobne pytania

0 głosów
2 odpowiedzi 790 wizyt
pytanie zadane 9 lutego 2017 w C i C++ przez robRoy Użytkownik (970 p.)
0 głosów
2 odpowiedzi 440 wizyt
0 głosów
4 odpowiedzi 4,467 wizyt
pytanie zadane 4 kwietnia 2016 w C i C++ przez esp0x309 Użytkownik (510 p.)

92,576 zapytań

141,426 odpowiedzi

319,652 komentarzy

61,961 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...