You are on page 1of 6

Caractere

Limbajul C foloseşte setul de caractere al codului ASCII care se codifică prin numere întregi din
intervalul [0,127], adică 128 de coduri. Un astfel de întreg se păstrează pe un BYTE (OCTET)
adică pe 8 biţi.

Mulţimea caracterelor se împarte în trei grupe:

- caractere negrafice (coduri cuprinse între 00=NUL şi 31) şi 127=DEL;

- spaţiu (codul 32);

- caractere grafice (coduri cuprinse între 33 şi 126).

Caracterele grafice se împart la rândul lor în:

litere mari (coduri între 65 şi 90);

litere mici (coduri între 97 şi 122);

cifre (coduri între 48 şi 59);

caractere speciale (celelalte coduri).

Caracterele negrafice au diferite funcţii. Astfel codul 10 semnifică LF (Line Feed), adică
deplasează cursorul pe linia următoare în coloana 1, iar codul 13 semnifică CR (Carriage Return)
adică deplasează cursorul în coloana 1 aceeaşi linie. În limbajul C combinaţia celor două
caractere se notează prin:

\n

şi are semnificaţia trecerii cursorului la linie nouă şi coloana 1 (newline).

Tabulatorul orizontal (deplasarea cursorului peste un anumit număr de poziţii) se precizează prin
notaţia:

\t

Să mai precizăm că următoarele 3 caractere: spaţiu, newline şi tabulator orizontal se mai numesc
spaţii albe (white spaces).

Nume
În limbajul C, un nume este o succesiune de litere şi eventual cifre, care începe cu o literă. Ca
lungime un nume poate fi oricât de lung dar numai primele 32 de caractere se iau în considerare.
Folosind notaţia BNF (vezi anexa) un nume se poate defini recursiv, ca mai jos:

<nume> ::= <litera> | <nume><litera> | <nume><cifra>

<litera> ::= A|B|C|D|E|F|G|H|I|J|K|L|M|N|O|P|Q|R|S|T|U|V|W|X|Z|

a|b|c|d|e|f|g|h|i|j|k|l|m|n|o|p|q|r|s|t|u|v|w|x|z|_

<cifra> ::= 0|1|2|3|4|5|6|7|8|9|

Numele se folosesc pentru denumirea variabilelor, tablourilor, funcţiilor, etc.

Exemple:

A, _start, a_, matrice, matrice_patratica.

Dăm şi câteva contraxemple:

&B - conţine caracterul &;

x+y - conţine caracterul +;

Cuvinte cheie
Un cuvânt cheie este un cuvânt împrumutat din limba engleză, care are un înţeles predefinit.
Aceste cuvinte se scriu cu litere mici. Un cuvânt cheie nu poate avea altă utilizare într-un
program C decât cea care i-a fost predefinită. Fiind o succesiune de litere, un cuvânt cheie este
un nume. Lista cuvintelor cheie se dă în anexa de la sfârşitul cărţii. Sensul fiecărui cuvânt cheie
va rezulta la definirea construcţiei în care se utilizează.

Exemple:

for, do, if, while, else, break, return, int, long, double, static, extern.

Tipuri de bază
În limbajul C distingem câteva tipuri predefinte de date care se mai numesc tipuri de bază. În
general un tip de dată are trei atribute bine conturate:
mulţimea valorilor;

reprezentarea (internă şi externă)

comportamentul (adică operaţiile ce se pot face cu acel tip).

În tabelul de mai jos dăm cuvântul cheie, mulţimea valorilor, reprezentarea internă.

Cuvânt cheie Mulţimea valorilor Lungime (biţi) Formatul intern

int întregii din [-215; 215-1] 16 reprezentare binară

short întregii din [-215; 215-1] 16 reprezentare binară

long întregii din [-231; 231 - 1] 32 reprezentare binară

unsigned întregii din [0; 216-1] 16 reprezentare binară

char 8 cod ASCII

float [-3.4*10-38; 3.4*1038] 32 virgulă flotantă simplă precizie

double [-1.7*10-308; 1.7*10308] 64 virgulă flotantă dublă precizie

Facem precizarea că se poate folosi şi combinaţia unsigned long pentru întregii fără semn în
dublă precizie.

Cu tipurile de bază se pot defini şi tipuri utilizator folosind instrucţiunea struct.

Constante
O constantă are un tip şi o valoare. Atât tipul cât şi valoarea unei constante se definesc prin
caracterele care compun constanta respectivă.

Constantă întreagă zecimală

O constantă întreagă este un şir de cifre care eventual este prefixat de un semn (+ sau -) şi
postfixat de litera L sau l. O constantă întreagă se reprezintă în binar pe 16 sau 32 de biţi. Sufixul
L sau l forţează reprezentarea pe 32 de biţi.
Constantă întreagă octală

O constantă întreagă octală este un şir de cifre octale (cifre cuprinse între 0 şi 7) precedat de un
zero nesemnificativ.

Constantă întreagă hexazecimală

O constantă întreagă hexazecimală este un şir de cifre hexazecimale prefixat cu 0x sau 0X.

Exemple:

Reprezentare Interpretare

12345 întreg zecimal reprezentat în binar pe 16 biţi

-12345 întreg zecimal reprezentat în binar pe 16 biţi

12345L întreg zecimal reprezentat în binar pe 32 biţi

012345 întreg octal reprezentat în binar pe 16 biţi (o cifră octală pe 3 biţi)

0xabcd întreg hexa reprezentat în binar pe 16 biţi (o cifră pe 4 biţi)

12345678 întreg zecimal reprezentat pe 32 de biţi

Constantă flotantă
O constantă flotantă este un număr raţional care se compune din următoarele elemente:

un semn (+ sau -) care poate lipsi pentru numerele pozitive;

o parte întreagă care poate fi şi vidă;

o parte fracţionară care poate fi şi vidă;

un exponent care poate fi şi vid.

Prezenţa părţii fracţionare este suficientă pentru ca numărul respectiv să reprezinte o constantă
flotantă. Absenţa părţii fracţionare implică prezenţa părţii întregi şi a exponentului.

Partea întreagă reprezintă o succesiune de cifre zecimale. Partea fracţionară se compune din
caracterul punct urmat de o succesiune de cifre zecimale, care poate fi şi vidă. Exponentul se
compune din litera e sau E urmată de un + sau -, opţional, şi un şir de cifre zecimale.

Constantele flotante se păstrează în format flotant dublă precizie.


Exemple:

3.14; 0.314e1; 3.1415926; 2.71828; 2.; 271828E-5.

Constantă caracter
O constantă caracter reprezintă un caracter şi are ca valoare codul ASCII al caracterului
respectiv. O constantă caracter grafic se poate scrie incluzând caracterul respectiv între caractere
apostrof.

Exemple:

Constantă caracter valoare cod ASCII

‘A’ 65

‘B’ 66

‘a’ 97

‘0’ 48

‘9’ 58

‘*’ 77

Anumite caractere negrafice au notaţii speciale la scrierea cărora se utilizează caracterul


backslash (\).

Caracter Reprezentare ca şi constantă caracter Valoare cod ASCII

Backspace ‘\b’ 8

Retur de car ‘\r’ 13

Newline ‘\n’ 10

Apostrof ‘\’’ 39

Backslash ‘\\’ 92
Tabulator vertical ‘\v’ 11

Salt pagină imprimantă ‘\f’ 12

Carcterul NUL ‘\0’ 0

Constantă şir de caractere


O constantă şir de caractere este o succesiune de zero sau mai multe caractere delimitate prin
ghilimele. Ghilimelele nu fac parte din şirul de caractere.

Exemple:

“123”; “Limbajul C”; “sir de caractere”; “sir\””; “”(şirul vid).

Constanta şir de caractere se reprezintă în memoria calculatorului printr-o succesiune de octeţi în


care se păstrează codurile ASCII ale caracterelor şirului, iar ultimul octet conţine caracterul NUL
care marchează sfârşitul şirului de caractere.

După cum se observă din exemplele date putem să folosim şi convenţia cu backslash.

De reţinut că ‘X’ şi “X” reprezintă construcţii diferite.

You might also like