www.amapro.cz & David Bazala [Programování]

Otevře webové stránky AmaPro


Otevře hlavní stránku společnosti AmaPro
Internetové stránky určené pro studenty středních a vysokých odborných škol.


amapro.cz/odkazy Projekt eliminuje vyhledávání klíčových slov na komerčních stránkách a v e-schopech.



Nový projekt AmaPro

 

const

 

Je typový modifikátor, který se používá jako doplňující informace pro překladač. Jeho význam před názvem a typem proměnné říká překladači, že po deklaraci a inicializaci nesmí být již hodnota proměnné změněná. Jedná se tedy o vytvoření konstantní proměnné (dále jen konstanty), která bude platná a konstantní v rámci celého (dále i připojovaného) zdrojového kódu.

 

Formát typového modifikátoru const

 

const typ nazev = hodnota ;

 

Při alokaci konstanty je vždy nutné ji také inicializovat hodnotou. Pokud není uveden typ konstanty je implicitně nastavená jako int a alokují se 4 Byte.

 

Specifika typového modifikátoru const

 

Syntaxní zápis const je pouze informací pro překladač, jak má s touto konstantou pracovat. Překladač ví vlastnosti konstanty a v době překladu testuje atributy volaných funkcí. Pokud by mělo docházet k pokusům hodnotu konstanty jakkoliv měnit, hlásí chybu už v době překladu a program se nezkompiluje. Principiálně alokuje příslušný počet Byte v paměti zcela stejně jako pro proměnnou s možností modifikovat její hodnotu. Teoreticky lze již ve spuštěném programu zavedeném kdekoliv v paměti naadresovat (třeba i omylem) paměťovou buňku, kde leži konstanta a změnit hodnotu. I použití ukazatelů si do určité míry dokáže překladač ošetřit již během překladu.

 

PŘÍKLAD: const_1

const char znak='a';                                            //alokace a inicial. chráněného 1 Byte

const char retez[]="system.ini";                      //alokace a inicial. chráněných 10 Byte

const int rok=1998;                                            //alokace a inicial. chráněných 4 Byte

const univer=666;                                              //implicitně alokuje jako int

const float pi=3.1415926535897;                      //alokace a inicial. chráněných 4 Byte

char *uk;                                                              //deklarace ukazatele na char

/*

znak="A";                                                           //nelze měnit obsah chráněného Byte

rok++;                                                                   //nelze provádět změnu hodnoty unárnímy operátory

rok=+10;                                                               //nelze provádět změnu hodnoty přiřazovacími operátory

strcpy(retez,"abcd");                                         //nelze volat žádné funkce pro změnu obsahu chráněných Byte

uk=retez;                                                              //nelze pracovat se znaky pomocí ukazatelů

cin>>znak;                                                           //nelze volat vstupní proud (zákaz zápisu)

*/

cout<<pi<<endl;                                                 //volá výstupní proud s parametrem pi (jen pro čtení)

cout<<(double)pi<<endl;                                  //obsah nezměněn, vstupuje do cout pouze jako jiný typ

getchar();                                                             //čekání na entr

return 0;                                                               //výstup z konzolové aplikace

 

Program demonstruje možnosti deklarace konstant a jejich možné a nemožné využití v programu. Program alokuje v paměti příslušný počet Byte a dožaduje se inicializační  hodnoty pro char, char[ ], int , float a ukazatel na char. Konstanta univer nemá zadaný typ a překladač implicitně nastavuje int. Část kódu v /**/ je zaremovaná (schovaná pro překladač), neboť by způsobila výpis chybových hlášení. Všechny příkazy a volání funkcí se snaží jakkoliv hodnotu konstant měnit, což je nepřípustné. Dále následují příkazy, které je možné s konstantami provádět. Vždy se jedná pouze o přistup k obsahu konstanty, tedy ke čtení. Poznámka: Při inicializaci pi provedl překladač zkrácení desetinného čísla na velikost odpovídající typu float (4 Byte). Proto nám program vypíše: 3,14159.



Abecední seznam všech článků Vyhledání pojmů ve článcích




Weby o programování
Odkazy na velké servery o programování a vývoji SW
odkazy/programovani
Mikropočítače
Seznámení s obecnou problematikou počítačů a mikropočítačů.
programovani/mikropocitace
PHP práce s poli
Práce s poli a položkamy v PHP.
stranky/php_array
Odkazník o programování
Rejstřík klíčových slov pro programování ve vyhledávačích.
programovani/programovani.php
Animované obrázky
Animované gify a malé obrázky pro všeobecné využití.
datove_zdroje/animace
Databáze obrázků
Malé a velké obrázky, podlkady, tlačítka, okrasné čáry a pod.
datove_zdroje/obrazky
Popis jazaka C
Průvodce příkazy programovacího jazyka C.
programovani/jazyk_c
Hybridní počítače
Počítače, jejichž základem je standardní analogová počítací síť.
knihy/hybridni_pocitace
Mikropočítače a jejich programování
Nízká forma programování, assembler a struktura procesorů.
knihy/mikropocitace/obsah_mikro1.php
Otevře stránky Fulltextové vyhledávání na celém serveru
Digitalizované odborné knihy
Velká encyklopedie pojmů a zkratek
Česko - anglicko - německý technický slovník
Klasický katalog firem, služeb a stránek
OnLine překladač  vět a textů (nepoužívá Google)
Stránky pro chvíle oddechu od studia, relaxace
Katalog českých firem dle technologií
Internetový odkazník
Otevře hlavní stranu pro oddíl programování




 Wikipedie   Seznam stránek   Kapitoly témat   Významné servery   Klíčová slova 








Otevře hlavní stranu společnosti AmaPro

Všechna práva vyhrazena. Určeno jen pro osobní využití. Bez předchozího písemného souhlasu správce www.amapro.cz je zakázána jakákoli další publikace, přetištění nebo distribuce jakéhokoli materiálu nebo části materiálu zveřejněného na www.amapro.cz a to včetně šíření prostřednictvím elektronické pošty. Články, jejichž přímým autorem není amapro.cz lze publikovat pouze se souhlasem jejich majitelů či administrátoru příslušného webu.