Deo zbornika Uvod u programiranje kroz C
Tipovi podataka u jeziku C
U C-u postoji nekoliko osnovnih tipova podataka:
- char - jedan byte, jedan znak iz skupa znakova
- int - cjelobrojna vrijednost, odnosi se na prirodnu veličinu cijelih brojeva na računalu
- float - realni broj s jednostrukom točnošću
- double - realni broj s dvostrukom točnošću
Kvalifikatori
Pored osnovnih tipova, postoje i kvalifikatori koji im se pridružuju. Tako se short
i long
dodaju cijelim brojevima:
short int sh;
long int counter;
Riječ int
može se izostaviti u ovakvim deklaracijama, ali se obično piše.
Htjeli smo sa short
i long
osigurati različite dužine cijelih brojeva, uglavnom tamo gdje za to postoji valjan razlog; int
je prirodna veličina za svako pojedino računalo. Tip short
uglavnom ima 16 bita, long
32 bita, a int
ili 16 ili 32. Svaki prevoditelj ima slobodu biranja veličine koja odgovara sklopovlju na kojemu radi, uz ograničenja da short
i int
moraju biti najmanje 16 bita, long
najmanje 32 bita, te da short
ne smije biti duži od int
koji opet ne smije biti duži od long
.
Kvalifikatori signed
i unsigned
mogu se pridružiti tipu char
ili bilo kojem cijelom broju. Brojevi tipa unsigned
su uvijek pozitivni ili jednaki nuli i za njih vrijedi aritmetički zakon modula 2n, gdje je n broj bitova u tipu. Tako, primjerice, ako char
ima 8 bitova, varijable tipa unsigned char
imaju vrijednost između 0 i 255, dok varijable tipa signed char
imaju vrijednost između -128 i 127. Bilo da je char kvalificiran kao signed ili unsigned, on je ovisan o računalu, a znakovi koji se ispisuju su uvijek pozitivni.
Tip long double
naznačuje realne brojeve uvećane točnosti. Kao i kod cijelih brojeva, veličine objekata realnih brojeva daju se definirati na više načina; float
, double
i long double
mogu predstavljati jednu, dvije ili tri različite veličine.
Standardna zaglavlja <limits.h>
i <float.h>
sadrže simboličke konstante za sve te veličine, skupa s ostalim svojstvima računala i prevoditelja.
Vježba 2-1. Napišite program za određivanje opsega varijabli tipa char
, short
, int
i long
, kad su kvalificirani kao signed
i unsigned
, ispisujući odgovarajuće vrijednosti sa standardnih zaglavlja direktnim izračunavanjem. Odredite opsege različitih tipova realnih brojeva.
Primer: ASCII vrednosti
Svaki broj u narednom primeru se može prikazati kao broj ili slovo, zavisno od tumačenja:
#include <stdio.h>
int main ()
{
int ch;
for (ch = 75; ch <= 100; ch++)
{
printf("ASCII vrednost = %d, karakter = %c\n", ch, ch);
}
return(0);
}
Izvor: Brian Kernighan i Dennis Ritchie, Programski jezik C