GeeksforGeeks
int *
int const* on osoitin vakioon kokonaislukuun
tämä tarkoittaa, että julistettava muuttuja on osoitin, joka osoittaa vakioon kokonaislukuun. Käytännössä tämä tarkoittaa, että osoitin osoittaa arvoon, jota ei pitäisi muuttaa. Const-karsinta ei vaikuta osoittimeen tässä skenaariossa, joten osoitin saa osoittaa johonkin muuhun osoitteeseen.
ensimmäinen const-hakusana voi mennä tietotyypin kummalle tahansa puolelle, joten int const* on sama kuin const int*.
int *const
int *const on vakioosoitin kokonaislukuun
tämä tarkoittaa, että julistettava muuttuja on vakioosoitin, joka osoittaa kokonaislukuun. Käytännössä tämä tarkoittaa, että osoitin ei pitäisi osoittaa johonkin muuhun osoitteeseen. Const qualifier ei vaikuta kokonaisluvun arvoon tässä skenaariossa, joten osoitteeseen tallennettava arvo saa muuttua.
const int * const
const* const on vakioosoitin vakiolle kokonaisluku
tämä tarkoittaa, että julistettava muuttuja on vakioosoitin, joka osoittaa vakioon kokonaislukuun. Käytännössä tämä tarkoittaa, että jatkuva osoitin osoittaa vakion arvoa. Näin ollen, ei osoitin pitäisi osoittaa uuteen osoitteeseen eikä arvo on osoitettu olisi muutettava.
ensimmäinen const-hakusana voi mennä tietotyypin kummalle tahansa puolelle, joten const int* const vastaa int* const-hakusanaa.
Muistikartta
yksi tapa muistaa syntaksi (Bjarne Stroustrupin mukaan) on spiraalisääntö-
sääntö sanoo, aloita muuttujan nimestä ja siirry myötäpäivään seuraavaan osoittimeen tai tyyppiin. Toista kunnes lauseke päättyy.
säännön voi nähdä myös purkavan syntaksia oikealta vasemmalle.
näin,
- int * is pointer to const int
- int *const is const pointer to int
- int const * const is const pointer to const
käyttämällä tätä sääntöä, jopa monimutkaisia julistuksia voidaan dekoodata kuten,
- int * * const on konst-osoitin osoittimelle int.
- int * const * on osoitin konst-osoittimelle int.
- int konst ** on osoitin osoitin konst int.
- int * const * const on konst-osoitin, joka osoittaa konst-osoitinta inttiin.
huomio lukija! Älä lopeta oppimista nyt. Hanki kaikki tärkeät C++ Foundation-ja STL-konseptit C++ Foundation-ja STL-kurssien avulla opiskelijaystävälliseen hintaan ja tule teollisuuskelpoiseksi.