Jazyk C - dátové typy, premenné
Učebné texty
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
Dátovy typ | Pamäť | Velkosť | Špecifický Formát |
char | 1 byte | od 128 do 127 alebo od 0 do 255 | %c |
unsigned char | 1 byte | od -127 do 128 | %c |
signed char | 1 byte | od 0 do 255 | %c |
short int | 2 byte | od -32 768 do 32 767 | %hd |
unsigned short int | 2 byte | od 0 do 62535 | %hu |
unsigned int | 4 byte | od 0 do 4 294 967 295 | %u |
int | 4 byte | od -2 147 483 648
do 2 147 483 647 |
%d |
long int | 4 byte | od -2 147 483 648
do 2 147 483 64 |
%ld |
unsigned long int | 4 byte | od 0 po 4 294 967 295 | %lu |
long long int | 8 byte | od -(2^63) do (2^63)-1 | %lld |
unsigned long long int | 8 byte | od 0 do 18,446,744,073,709,551,615 | %llu |
float | 4 byte | od 1.12 x 10^-38 do 3.4 x 10^38 | %f |
double | 8 byte | od 2.3 x 10^-308 do 1.8 x 10^308 | %lf |
long double | 12 byte | od 3.4 x 10^-4932 do 1.1 x 10^4932 | %Lf |
Integer
Integer sú celé čísla, ktoré neobsahujú zlomkovú zložku, na rozdiel od reálnych čísel (pohyblivá čiarka, v C-reči). V programovacom jazyku C sa znakové dáta považujú za celočíselný typ údajov.
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 najzákladnejší typ údajov v C. Ukladá jeden znak a vyžaduje jediný bajt pamäte takmer vo všetkých kompilátoroch.Typ znaku je však celé číslo, pretože pod písmenom C sú uložené celé čísla namiesto znakov.
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 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 | 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 získať znaky v jazyku C, použite funkciu printf () s% c. Ak použijete % d, namiesto znaku získate celé číslo. Nasledujúci príklad ukazuje, ako zobraziť znaky v C[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);
12 printf("vloz cislo 2:");
13 scanf("%d",&b);
14 podiel=a/b;
15 printf("podiel je:%f",podiel);
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 oproti float.
Premenné
Premenná nie je nič iné ako názov oblasti úložiska, s ktorou môžu naše programy manipulovať. Každá premenná v 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ú.
Názov premennej môže pozostávať z písmen, číslic a znaku podčiarknutia. Musí to začínať písmenom alebo znakom podčiarknutia. Veľké a malé písmená sú zreteľné, pretože v písmene 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
1. Lokálne premenné
2. Globálne premenné
3. Statické premenné
4. Automatické premenné
5. 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á
Premenná, ktorá je deklarovaná pomocou statického kľúčového slova, sa nazýva statická premenná.
Zachováva si svoju hodnotu medzi viacerými volaniami funkcií.
void function1(){
int x=10;//lokálna premenná
static int y=10;//statická premenná
x=x+1;
y=y+1;
printf("%d,%d",x,y);
}
Ak túto funkciu zavoláte viachokrát, lokálna premenná vypíše rovnakú hodnotu pre každé volanie funkcie, napr. 11,11,11 atď. Statická premenná však vypíše zvýšenú hodnotu pri každom volaní funkcie, napr. 11, 12, 13 a tak ďalej.
Automatická premenná
Všetky premenné v C, ktoré sú deklarované vo vnútri bloku, sú predvolene automatické premenné. Pomocou automatického kľúčového slova môžeme explicitne deklarovať automatickú premennú.
void main(){
int x=10;//local variable (also automatic)
auto int y=20;//automatic variable
}
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);
}
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;
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. |