Jazyk C - dátové typy, premenné

Z Kiwiki
Skočit na navigaci Skočit na vyhledávání



Dátove Typy

Typy údajov v jazyku C označujú rozsiahly systém, ich typ premenných sa určuje pri deklaracií a následne sa nedá meniť. Typ premennej určuje, koľko miesta zaberá v úložisku a ako sa interpretuje uložený bitový vzor.

Základné dátové typy

[1]

Dátovy typ Pamäť Velkosť
char 1 byte od -128 do 127 alebo od 0 do 255
unsigned char 1 byte od -127 do 128
signed char 1 byte od 0 do 255
short int 2 byte od -32 768 do 32 767
unsigned short int 2 byte od 0 do 62535
unsigned int 4 byte od 0 do 4 294 967 295
int 4 byte od -2 147 483 648

do 2 147 483 647

long int 4 byte od -2 147 483 648

do 2 147 483 64

unsigned long int 4 byte od 0 po 4 294 967 295
long long int 8 byte od -(263) do (263)-1
unsigned long long int 8 byte od 0 do 18,446,744,073,709,551,615
float 4 byte od 1.12 x 10-38 do 3.4 x 1038
double 8 byte od 2.3 x 10-308 do 1.8 x 10308
long double 12 byte od 3.4 x 10-4932 do 1.1 x 104932


Integer

Integer je označenie celočíselného dátoveho typu, ktorý predstavuje konečnú podmnožinu celých čísel.

Dátovy typ Pamäť Velkosť
int 4 byte od -2 147 483 648

do 2 147 483 647

 1 #include <stdio.h> 
 2 
 3 //súčet 3 čísel
 4 int main()
 5 {
 6 int a,b,c,sucet;
 7 scanf("%d %d %d",a,b,c);
 8 sucet=a+b+c;
 9 printf("%d",sucet);
10 
11 return 0;
12 }

Char

Char(znak) je základný typ údajov v C. Ukladá jeden znak a vyžaduje jediný bajt pamäte takmer vo všetkých kompilátoroch. Aby počítač mohol reprezentovať znaky, musí mapovať každé celé číslo zodpovedajúcim znakom pomocou číselného kódu. Najbežnejším číselným kódom je ASCII, čo znamená americký štandardný kód pre výmenu informácií. Nasledujúca tabuľka ilustruje kód ASCII:


ASCII Tabuľka Hodnoty a význam znakov ASCII(American Standard Code for Information Interchange) tabuľky od 32 po 127

Kód Znak Kód Znak Kód Znak Kód Znak Kód Znak Kód Znak Kód Znak Kód Znak
32 SPACE 44 , 56 8 68 D 80 P 92 \ 104 h 116 t
33 ! 45 - 57 9 69 E 81 Q 93 ] 105 i 117 u
34 " 46 . 58 : 70 F 82 R 94 ^ 106 j 118 v
35 # 47 / 59 ; 71 G 83 S 95 _ 107 k 119 w
36 $ 48 0 60 < 72 H 84 T 96 ` 108 l 120 x
37 % 49 1 61 = 73 I 85 U 97 a 109 m 121 y
38 & 50 2 62 > 74 J 86 V 98 b 110 n 122 z
39 ´ 51 3 63 ? 75 K 87 W 99 c 111 o 123 {
40 ( 52 4 64 @ 76 L 88 X 100 d 112 p 124
41 ) 53 5 65 A 77 M 89 Y 101 e 113 q 125 }
42 * 54 6 66 B 78 N 90 Z 102 f 114 r 126 ~
43 + 55 7 67 C 79 O 91 [ 103 g 115 s 127 DEL



Zobrazenie char v jazyku C

Ak chcete vypísať znaky v jazyku C, použite funkciu printf () s%. Nasledujúci príklad ukazuje, ako zobraziť celočíselnú reprezentáciu znaku v C podla ASCII tabulky[2]

 1 #include <stdio.h>
 2 #include <stdlib.h>
 3  
 4 int main()
 5 {
 6     char ch = 'A';
 7     printf("ch = %c\n",ch);
 8     printf("ch = %d, prevod na integer\n",ch);
 9  
10     return 0;
11 }

Float

Float sa používa na ukladanie desatinných čísel (čísla s hodnotou s desatinnou čiarkou) s presnosťou na 7 desatinných miest. Podľa definície je to základný dátový typ zabudovaný do kompilátora, ktorý sa používa na definovanie číselných hodnôt s desatinnými desatinnými miestami. C, C ++, C # a mnoho ďalších programovacích jazykov rozpoznáva float ako typ údajov.


 1 #include <stdio.h>
 2 #include <stdlib.h>
 3 
 4 //Príklad na podiel 2 čísel
 5 int main()
 6 {
 7   //Podiel 2 čísel
 8   int a,b;
 9   float podiel;
10   printf("vloz cislo 1:");
11   scanf("%d",&a); //vložíme číslo 15
12   printf("vloz cislo 2:");
13   scanf("%d",&b); //vložíme číslo 2
14   podiel=a/b;
15   printf("podiel je:%f",podiel); //konzola vypíše 7,5
16   return 0;
17 }

Double

Double sa používa na ukladanie desatinných čísel (čísla s hodnotou s desatinnou čiarkou) s presnosťou na 15 desatinných miest.

Premenné

Premenná je názov oblasti úložiska, s ktorou môžu naše programy manipulovať. Každá premenná v jazyku C má špecifický typ, ktorý určuje veľkosť a rozloženie pamäte premennej; rozsah hodnôt, ktoré môžu byť uložené v tejto pamäti; a súbor operácií, ktoré možno použiť na premennú.

Deklarácia premenných

Pravidlá pre deklarovanie premenných v jazyku C

  • Názov premennej musí začínať písmenom alebo znakom podčiarknutia.
  • U premenných sa rozlišujú malé a veľké písmená
  • Môžu byť obsahovať číslice a písmená.
  • Okrem podčiarknutia nie sú povolené žiadne špeciálne symboly.
  • Premenné by sa mali pred použitím deklarovať v programe C.
  • Pamäťový priestor nie je pri deklarovaní pridelený premennej. Stáva sa to iba pri definícii premennej.


Deklarácia a inicializácia premenných v jazyku C

Obecný tvar deklarácie premennej v C:

popis typu   deklarované objekty  [=počiatočné hodnoty]

int a=1;
char o='p';
double g,j,h;
float e=2.4e+2,    f=2.2154;

[3]


Definícia vs Deklarácia

Definica Deklarácia
Definícia alokuje pamäť pre premennú. Deklarácia hovorí kompilátoru o dátovom type a veľkosti premennej.
Môže sa to stať iba raz pre premennú v programe. Premennú je možné v programe mnohokrát deklarovať
Priradenie úložného priestoru k premennej. Priradenie vlastností a identifikácia premennej.


Názov premennej môže pozostávať z písmen, číslic a znaku podčiarknutia. Musí začínať písmenom alebo znakom podčiarknutia. Veľké a malé písmená sú zreteľné, pretože v jazyku C sa rozlišujú malé a veľké písmená. Na základe základných typov vysvetlených v predchádzajúcej kapitole budú nasledovať tieto základné typy premenných

Typy premenných v jazyku C

  • Lokálne premenné
  • Globálne premenné
  • Statické premenné
  • Automatické premenné
  • Vonkajšie premenné


Lokálna premenná

Premenná, ktorá je deklarovaná vo funkcii alebo bloku, sa nazýva lokálna premenná.

Musí sa uviesť na začiatku bloku.

void function1()
{  
    int x=10; //lokálna premenná  
}

Globálna premenná

Premenná, ktorá je deklarovaná mimo funkcie alebo blok, sa nazýva globálna premenná. Akákoľvek funkcia môže zmeniť hodnotu globálnej premennej. Je k dispozícii pre všetky funkcie.

Musí sa uviesť na začiatku bloku.

int value=20;     //globalná premenná
void function1(){  
    int x=10;     //lokálna premenná  
}

Statická premenná

Statické premenné majú tú vlastnosť, že si zachovajú svoju hodnotu aj po tom, ako sú mimo ich rozsah. Preto si statické premenné zachovávajú svoju predchádzajúcu hodnotu v ich predchádzajúcom rozsahu a nie sú znovu inicializované v novom.

static data_type var_name = var_value;

Počas chodu programu zostáva statická premenná int v pamäti. Automatická premenná zanikne keď sa skončí volanie funkcie kde bola deklarovaná.

Napríklad statickú premennú int môžeme použiť na spočítanie koľko krát bola funkcia volaná, v tomto prípade by sme nemohli použiť automatickú premennú. Tento program vypíše "1 2"

#include<stdio.h> 
int fun() 
{ 
    static int count = 0; 
    count++; 
    return count; 
} 
   
int main() 
{ 
    printf("%d ", fun()); // vypíše 1 
    printf("%d ", fun()); // vypíše 2
    return 0; 
}


Nasledujúci program vypíše "1 1"

#include<stdio.h> 
int fun() 
{ 
    int count = 0; 
    count++; 
    return count; 
} 
   
int main() 
{ 
    printf("%d ", fun()); //vypíše 1
    printf("%d ", fun()); //vypíše 1
    return 0; 
}
  • Statické premenné sú alokované pamäte v segmente údajov, nie v segmente zásobníkov.
  • Statické premenné sú inicializované ako 0, ak nie sú inicializované explicitne.
  • V C môžu byť statické premenné inicializované iba pomocou konštanty.
  • Statické globálne premenné a funkcie je tiež možné vytvoriť v C/C++. Ich účelom je obmedziť rozsah premennej alebo funkcie.
  • Statické premenné by sa nemali deklarovať vo vnútri štruktúry. Dôvodom je, že kompilátor C vyžaduje, aby boli všetky prvky štruktúry umiestnené spolu.

Automatická premenná

Toto je predvolená trieda úložiska pre všetky premenné deklarované vo funkcii alebo bloku. Pri písaní programov v jazyku C sa preto kľúčové slovo auto používa zriedka. K automatickým premenným sa dá pristupovať iba v rámci bloku / funkcie, ktoré boli deklarované, a nie mimo nich. Prístup k nim je samozrejme možný vo vnútri vnorených blokov funkcie, v ktorej bola deklarovaná automatická premenná.


void main(){  
    int x=10;      //lokálna premenná (tiež automatická)  
    auto int y=20; //automatická premenná  
}

Vonkajšia premenná

Môžeme zdieľať premennú vo viacerých zdrojových súboroch C pomocou externej premennej. Ak chcete deklarovať externú premennú, musíte použiť externé kľúčové slovo.


mojsubor.h

extern int x=10; //externá premenná (tiež globálna)

program1.c

#include "mojsubor.h"  
#include <stdio.h>  
void printValue(){  
    printf("Global variable: %d", global_variable);  
}

[4]

Referencie