Deo zbornika Uvod u svet programiranja

Tipovi podataka u jeziku C

Email Twitter LinkedIn Facebook Google

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

Pored toga, postoje i kvalifikatori koji se pridružuju nabrojanim osnovnim tipovima. Tako se short i long pridružuju 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