Element zadeklarowany w języku C++ double *x; to
double x;; gwiazdka zmienia ją we wskaźnik.double.int, a gwiazdka i tak czyni z x wskaźnik.Opracowane na podstawie zadania CKE, wrzesień 2014 (arkusz E.14-X-14.08): W arkuszu CKE deklaracja ma postać double x*; - to niepoprawna składnia C++. Poprawiono na double *x;.
Gwiazdka przy nazwie w deklaracji oznacza wskaźnik, więc double *x; tworzy zmienną x, która przechowuje adres w pamięci, pod którym leży wartość typu double. Sam wskaźnik nie jest liczbą rzeczywistą, tylko „drogowskazem” do niej.
Przykład użycia: double a = 2.5; double *x = &a; - operator & pobiera adres zmiennej a, a zapis *x odczytuje wartość spod tego adresu (tu 2.5). Do zapamiętania: w deklaracji gwiazdka stoi przed nazwą zmiennej (double *x), a zapis z gwiazdką za nazwą jest błędem składni. Wskaźniki służą między innymi do dynamicznej alokacji pamięci i przekazywania dużych danych do funkcji bez kopiowania.
Najwięcej osób wybiera zmienną rzeczywistą, bo w deklaracji widać typ double. Ten typ mówi jednak tylko, na jakie dane wskaźnik pokazuje. O tym, czym jest sama zmienna x, decyduje gwiazdka: bez niej (double x;) byłaby to zwykła zmienna rzeczywista.
Zmienna całkowita nie pasuje z dwóch powodów: typem całkowitym jest int, a nie double, a do tego gwiazdka i tak zmienia zmienną we wskaźnik.
Parametr formalny to zmienna zapisana w nawiasie nagłówka funkcji, na przykład w void f(double y). Deklaracja z zadania stoi samodzielnie i kończy się średnikiem, więc jest zwykłą deklaracją zmiennej, a nie częścią nagłówka funkcji. Gwiazdka przed nazwą przesądza, że jest to wskaźnik na wartość typu double. Zanim się go użyje, trzeba mu przypisać adres istniejącej zmiennej.