GeeksforGeeks
int const *
int const* är pekare till konstant heltal
det betyder att variabeln som deklareras är en pekare som pekar på ett konstant heltal. Effektivt innebär detta att pekaren pekar på ett värde som inte bör ändras. Const qualifier påverkar inte pekaren i det här scenariot så pekaren får peka på någon annan adress.
det första const-nyckelordet kan gå på vardera sidan av datatypen, varför int const * motsvarar const int*.
int *const
int *const är en konstant pekare till heltal
detta betyder att variabeln som deklareras är en konstant pekare som pekar på ett heltal. Effektivt innebär detta att pekaren inte ska peka på någon annan adress. Const qualifier påverkar inte värdet på heltal i det här scenariot, så värdet som lagras i adressen får ändras.
const int * const
const int* const är en konstant pekare till konstant heltal
detta betyder att variabeln som deklareras är en konstant pekare som pekar på ett konstant heltal. Effektivt innebär detta att en konstant pekare pekar på ett konstant värde. Därför bör varken pekaren peka på en ny adress eller värdet som pekas på bör ändras.
det första const-nyckelordet kan gå på båda sidor av datatypen, varför const int * const motsvarar int const * const.
minneskarta
ett sätt att komma ihåg syntaxen (enligt Bjarne Stroustrup) är spiralregeln-
regeln säger, Börja från variabelns namn och flytta medurs till nästa pekare eller typ. Upprepa tills uttrycket slutar.
regeln kan också ses som avkodning av syntaxen från höger till vänster.
därför,
- int const * är pekare till const int
- int * const är const pekare till int
- int const * const är const pekare till const int
med denna regel kan även komplexa deklarationer avkodas som,
- int * * const är en const pekare till pekare till en int.
- int * const * är en pekare till const pekare till en int.
- int const ** är en pekare till en pekare till en const int.
- int * const * const är en const pekare till en const pekare till en int.
uppmärksamhet läsare! Sluta inte lära dig nu. Få tag på alla viktiga C++ Foundation och STL-koncept med C++ Foundation och STL-kurser till ett studentvänligt pris och bli branschklar.