Co to znaczy const int * i var?
Widziałem kogoś, kto to używa
void methodA(const int*& var);
w jednej odpowiedzi, ale nie mogłem zrozumieć, co oznacza argument.
AFAIK:
const int var
=> wartość stała, której nie można zmienić
const int* var
=> wskaźnik do int, który jest stały tj. * var nie może zostać zmieniony, ale można zmienić var
const int& var
=> odwołanie do const int. Nie można zmienić wartości var
Co robiconst int*& var
znaczy i jestconst int& *var
również możliwe?
Czy możesz podać również jakiś przykład, np. Co można zrobić i czego nie można z tym zrobić?
AKTUALIZACJA :
Nie jestem pewien, czy dobrze myślę, ale zacząłem myśleć, że odniesienie jako alias zmiennej, która została przekazana jako argument, więc const int * p; methodA (p) => tutaj przekazujemy p jako const int *, ale nie wiemy, czy jest to przekazane przez wartość, czy też dopóki nie zobaczymy definicji metody A,
więc jeśli metoda A jest podobna do tej metodyA (const int * i p2) ==> tutaj p2 to inna nazwa na p, tj. p i p2 są takie same od teraz i jeśli methodA (const int * p2) ==> tutaj p2 jest przekazywane jako wartość, tzn. p2 jest po prostu lokalny dla tej metody,
popraw mnie, jeśli myślę źle? Jeśli tak, może będę musiał dowiedzieć się więcej na ten temat? Czy możesz podać jakieś miłe referencje?
AKTUALIZACJA 2 Jeśli jakiś początkujący, taki jak ja, chce wiedzieć więcej na ten temat, możesz użyćc ++ decl / program cdecl, z którego odkryłem, że jest bardzo przydatnytutaj
$ c++decl
Type `help' or `?' for help
c++decl> explain const int&* p
declare p as pointer to reference to const int
c++decl> explain const int*& p
declare p as reference to pointer to const int
Ale jak każdy tutaj wskazał, pierwszy przykład nie jest legalny w C ++.
Dzięki