Varijable, konstante, operatori

2. Podaci u programu

2.2. Konstante

Konstante su vrijednosti koje se zadaju jedanput i ne mijenjaju se tijekom izvođenja programa. S obzirom na tipove podataka, razlikuju se:

  • cjelobrojne,
  • realne i
  • znakovne konstante.

Cjelobrojne konstante su cijeli dekadski brojevi iz dopuštenog opsega, zapisani u standardnom obliku. Od cjelobrojnih konstanti C dopušta još oktalne i heksadekadske konstante. Oktalne konstante počinju s 0, a heksadekadske s 0x. (npr. 044 – oktalna, 0xaba – heksadekadska).

Realne konstante sadržavaju realne brojeve s predznakom ili bez njega i zapisane su u standardom obliku tako da decimalna točka odvaja cjelobrojni dio od decimalnog. Mogu se zapisati i u eksponencijalnom obliku. Prvi dio takvog zapisa je realan broj (s predznakom ili bez njega), zatim slovo e ili E i iza njega cijeli broj (s predznakom ili bez njega), npr. broj 0.02 može biti zapisan kao 2E-2.

Znakovne konstante zadaju se unutar jednostrukih navodnika – literala ' ' i uglavnom se sastoje od jednog znaka (osim spomenutih znakovnih konstanti koje se koriste za kontrolu ispisa). Vrijednost znakovne konstante odgovara numeričkoj vrijednosti koja odgovara ASCII kodu znaka koji se nalazi unutar jednostrukih navodnika. Tako je numerička vrijednost znakovne konstante 'Z' 90. Znakovne konstante se mogu pojavljivati u aritmetičkim izrazima i tada se upotrebljava isključivo njihova numerička vrijednost.
Uz spomenute vrste konstanti, programski jezik C definira i konstantu niza znakova (string constant), koja se sastoji od niza znakova unutar para navodnika, npr. "konstanta".
'A' i ''A'' su različite konstante!

Konstantu možemo najaviti na sljedeći način:
        const tip_konstante ime_konstante = vrijednost_konstante;

Primjerice, naredbom
        const int a = 5;
najavljujemo podatak a koji će tijekom izvođenja programa uvijek imati vrijednost 5.

Za definiranje konstanti još se koristi i pretprocesorska naredba #define, oblika:
        #define ime_konstante vrijednost_konstante
Na taj način definiramo simboličku konstantu. Tako se obično definiraju konstante kao pi ili logičke konstante, primjerice:
                #define pi 3.141592654
       #define true 1
       #define false 0

Zadatci za vježbu
Za svaku navedenu konstantu odgovorite je li ispravno napisana. Ako nije, objasnite zašto!
a) 1785
b) 07A
c) 'Mehanotehna'
d) 5.4E2.5
e) 34.76

Rješenje:

a) 1785 - ispravno
b) 07A - nije ispravno jer A nije oktalna znamenka (nego heksadekadska), a obzirom da za počinje s 0 onda konstanta mora biti oktalna
c) 'Mehanotehna' - nije ispravno, jer se pod literalima piše samo jedan znak. Više znakova mora se pisati pod navodnicima.
d) 5.4E2.5 - nije ispravno jer iza slova E mora biti cijeli broj
e) 34.76 - ispravno