[C++] Tablice znakowe i wskaźnik na C-string

Czesc wam, mam pytanie odnośnie tablic znakowych i wskaźników const char*.

Wszystkie te formy zainicjalizowania ich są dopuszczalne:

//Wskaźniki:const char* wsk = "abc";char* wsk = { "abc" };

Różnią się tylko sposobem inicjalizowania, składnią i tym, że sizeof na tablicy zwróci jej rozmiar a na wskaźniku zwróci rozmiar wskaźnika.

OK, rzeczywiście sizeofem i składnią (bo czasem są klamry { } ). Ale sposobem - jak ? Aby jeszcze bardziej uściślić pytanie:

const char tabl[] = "abc";const char tabl[] = { "abc" }; [/code]

czym różnią się tylko te dwa zapisy. Czy użycie nawiasów coś zmienia :?:

Może źle się wyraziłem, chodziło mi właśnie o { }.

Ich użycie nic nie zmienia.

A ja jeszcze mam takie pytania właśnie odnośnie tych nawiasów klamrowych bo mam zadanie z tym związane na jutro do szkoły (poziom zadań coraz bardziej mnie przeraża… ^.^).

const char tabl[] = "abc";

Jest wyjątkiem ponieważ zawsze przy inicjalizacji tablic trzeba używać nawiasów klamrowych, tak :?: 2)

const char* wsk = { "abc" };

Możliwe jest zrobienie czegoś takiego, ponieważ przy inicjalizacji każdego obiektu można posłużyć się nawiasami klamrowymi. Jeśli to nie jest tablica, to liczba inicjalizatorów musi wynieść 1:

int zmienna = { 4 };

int* wsk = { &zmienna };

double pi = { 3.14, 3.1415 }; //<--- Błąd ! Za dużo inicjalizatorów !

Można to tak wytłumaczyć :?:

1)Tak

2)Tak, ale raczej takiej inicjalizacji dla zmienny nietablicowych się nie stosuje.

Stosuje się:

struct Punkt { double x,y; };Punkt A={0,0},B={3,4}; [/code]

Racja, mój błąd. Zapomniałem o typach nieatomowych.