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

 

char

 

Je standardní příkaz Céčka, který určuje typ proměnné, kterou má překladač alokovat v paměti. V tomto případě se jedná o nejzákladnější datový typ binární algebry a je to 1 Byte. Jeden Byte je tvořen 8 bity, které vytvářejí v adresním prostoru PC jednu paměťovou buňku. Procesor k 1 Byte přistupuje pomocí adresové a datové sběrnice. Procesor dostává data ze strojového kódu. Strojový kód vytvoří překladač na základě  zdrojového kódu. Zdrojový kód je zjednodušenější a přehlednější zadávání příkazu a proměnných. To je naše úroveň, kde programujeme v Céčku. Char je typ proměnné, která prezentuje 1 Bajt v paměti počítače. Jeho rozsah jsou celá čísla od -128 do 127. Lze je logicky i aritmeticky sčítat odčítat, porovnávat a posunovat bitově. Všechny tyto operace dělají registry CPU.

 

Formát deklarace proměnné:

 

char znak;

 

Nastavuje proměnnou typu 1 Byte s jedinečným názvem pro překladač a programátora znak.

 

Co je důležité:

 

Překladač registruje název znak, který musí být jedinečný. Prezentuje proměnnou char.

Překladač při spuštění programu nechá alokovat jednu adresu (1 Byte), kam se budou ukládat hodnoty od –128 do +127.

Překladač zajistí programu požadavek informace o skutečné adrese onoho Byte.

POZNÁMKA: překladač není správný pojem, neboť při spuštění kompilovaného programu je mimo hru

 

Specifika pro char:

 

Typ proměnné char je pro mnoho funkcí (hlavně I/O) zdrojem informace o generování znaku. Hodnoty char pak dle ASCII tabulky prezentují nějaké znaky. Např.:“A“=65, “B“=66 apod.

Typ proměnné char disponuje tzv. nekonečným přetékáním. Pokud by byl výsledek větší než +127, bude přebytek počítán od -128 a -128 opět podtíká od +127 níž.

Existuje i speciální typ pro 1 Byte, který je v rozmezí od 0 do 255, označován jako usigned char.

 

char znak1;                                          //alokuje ale neinicializuje 1 Byte

char znak2='B';                                   //alokuje a inicializuje 1 Byte

char znak3=67;                                   //alokuje a inicializuje 1 Byte

char veta1[10];                                    //alokuje ale neinicializuje 10 Bajtů

char veta2[]="Ahoj Pavle";     //alokuje a inicializuje výpočtem překladač

char veta3[100]="Ahoj Martino";        //alokuje 100 Byte, inicializuje 12 Byte +1Bajt(/0)

znak1='A';                                          //nastavuje již alokovaný 1 Byte

cout<<znak1<<endl;                           // A

cout<<znak2<<endl;                           // B

cout<<znak3<<endl;                           // C

cout<<veta1<<endl;                            // nesmyslné znaky

cout<<veta2<<endl;                            // Ahoj Pavle

cout<<veta3<<endl;                            // Ahoj Martino

getchar();                                            // čeká na entr

return 0;                                  // opouští konzolovou aplikaci

 

Program deklaruje znak1, znak2 a znak3 jako char o velikosti 1 Byte. Pro překladač jsou znaky typu char a veškeré operace, které se budou vztahovat na znak se bude pokoušet aplikovat jako char. Pokud to nepůjde, zahlásí chybu. Při spuštění dojde k alokaci 3x1Bajt. Hodnota Byte pro znak1 bude dle situace, znak2 byl námi nastaven znakově na hodnotu 66 a znak3 byl nastaven číselně na hodnotu 67. Dále v běhu programu se vyskytuje přiřazení znak1='A'; Zde dojde k nastavení již alokované paměťové buňky na 65.

Dále jsou deklarovány tři věty, které tvoří skupinu charů. Mluvíme o poli charů, nebo-li řetězcích. Věta1 alokuje 10 paměťových po sobě jdoucích buňek v paměti, ale ponechá jejich původní hodnoty. Věta2 nemá zadaný počet charů v závorce a vyžaduje nastavení určitého počtu znaků. Výpočet provede překladač a přidá zakončovací znak /0. Věta3 alokuje 100 paměťových buněk a nastaví prvních 12 Byte dle uvedených znaků. Přidá zakončovací /0 a zbytek do 100 Byte ponechá dle aktuálního natavení.

Výstupní  proud cout ví, že když mu přijde parametr jeden char, převede ho dle ASCII na znak a pošle na obrazovku. Pokud přijde více charů, posílá znaky na obrazovku tak dlouho, než se objeví /0.

 

Důležité si uvědomit

 

Při alokaci většího počtu charů, tedy vytvoření pole či znakového řetězce dojde k vymezení paměťového prostoru od ADR1 do ADR2, kde rozdíl těchto adres určuje počet alokovaných Byte. Jedná se o statickou alokaci, kterou již nelze po zavedení změnit. Je proto plně v moci programátora, aby respektoval počet prvků v poli. Pokud alokujeme místo pro znakový řetězec o velikosti 10 charů, nesmí se nám v programu vyskytnout situace, kdy by byl znakový řetězec delší. Zvláště při použití ukazatelů může dojít k neurčitým zápisům mimo oblast paměťového prostoru pole. Můžeme pak přepisovat i adresy, kde leží vlastní program.

 

 



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




Zapojení kabelů
Popis vývodů a křížení různých propojovacích kabelů
konektory.php
JavaScript - ukázky
Příklady užití některých často používaných efektů na stránky.
katalogy/javascript
Číslicové počítače
Základní aritmetické operace, logické operace a vztahy mezi nimi.
programovani/cislicove_pocitace
Weby o programování
Odkazy na velké servery o programování a vývoji SW
odkazy/programovani
PHP práce s poli
Práce s poli a položkamy v PHP.
stranky/php_array
Hybridní počítače
Počítače, jejichž základem je standardní analogová počítací síť.
knihy/hybridni_pocitace
Databáze ikon
Ikony a malé obrázky pro tlačítka či jiné použití
datove_zdroje/icony/icony.php
Mikropočítače
Seznámení s obecnou problematikou počítačů a mikropočítačů.
programovani/mikropocitace
CSS html vlasnosti
Přehled CSS vlastností pro tvorbu webu
datove_zdroje/stranky/css
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.