Konštanty a funkcia printf()

#include <stdio.h>

main ()
{
        printf ("Hello, vole!\n");
        printf ("%c %u %x %o %s\n", 'c', 0x1f, 076, 1234, "EHLO!");
}

Argumentami funkcie môžu byť (okrem iného) konštanty. Konštanty sú údaje, ktoré sú priamo súčasťu textu programu. V jazyku C existujú znakové, reťazcové a číselné konštanty.

Číselné konštanty

Číselné konštanty môžeme zapisovať v osmičkovej (oktalovej), desiatkovej (dekadickej/decimálnej) alebo šestnásťkovej (hexadecimálnej) sústave.

Znakové konštanty

Znaková konštanta je znak (číslo, písmeno, biely znak, ...) uzavretý v apostrofoch. Napríklad 'A'. Niektoré znaky nie je možné, alebo vhodné, uzatvárať do apostrofov. Ide napríklad o znak konca riadku, alebo apostrof samotný. Vtedy môžme použiť tzv. escape znak -- obrátené lomítko. Obrátené lomítko mení význam nasledujúceho znaku.

Asi takto:
\n koniec riadku
\r backspace
\t tabulátor
\' apostrof
\\ obrátené lomítko

Reťazcové konštanty

Reťazec je množina (pole) znakov. Reťazcová konštanta pozostáva so znakov uzavretých do úvodzoviek. Pre jednotlivé znaky platí to isté čo pri znakových konštantách (escape-znaky). Napríklad "Those who in quarrels interpose,\nmust often wipe a bloody nose.".

Funkcia printf()

Podľa dokumentácie k funkcii printf() má funkcia printf() jeden, alebo viac argumentov, z ktorých prvý je tzv. formátovací reťazec. Formátovací reťazec sa skopíruje na výstup, pričom sekvencie začínajúce znakom % nahradí hodnotou nasledujúceho argumentu v formáte určenou touto sekvenciou, tzv. formátovacím špecifikátorom:

%i Celé číslo v desatkovej sústave
%u Kladné číslo v desatkovej sústave
%o Kladné číslo v osmičkokovej číselnej sústave
%x Kladné číslo v šestnásťkovej číselnej sústave
%c Znak
%s Reťazec

Formátovacíck špecifikátorov musí byť v formátovacom reťazci práve toľko, koľko argumentov má funkcia printf() za formátovacím reťazcom. Ak toto nedodržíme, dopúšťame sa vážnej chyby, a mnoho kompilátorov nás na túto skutočnosť neupozorní (nakoľko sa nejedná o syntaktickú chybu).