Documente Academic
Documente Profesional
Documente Cultură
-1-
1.4 CONSTANTE
O constant are un tip i o valoare. Valoarea acesteia nu poate fi modificat pe tot parcursul
programului.
n C exist urmtoarele tipuri de constante:
constante ntregi
constante reale
constante caracter
constante ir de caractere
constante simbolice
Vom discuta n cele ce urmeaz despre fiecare tip de constante.
1.4.1 CONSTANTE NTREGI
O constant ntreag poate fi un ir de cifre, care eventual este precedat de un semn.
Mod de reprezentare: 16 sau 32 bii prin complement fa de 2. n cazul n care, dorim ca o
constant s fie reprezentat pe 32 bii chiar dac ea se poate reprezenta
pe 16 bii, vom termina constanta respectiv cu l sau L, astfel constanta
va fi de tip long.
CLASIFICARE:
constante ntregi zecimale (scrise n baza 10)
constante ntregi octale (scrise n baza 8) - precedate de 0 nesemnificativ
constante ntregi hexazecimale (scrise n baza 16) - precedate de 0x sau 0X
EXEMPLE:
1)
34534L, -98, 23, 10, 1 - constante ntregi zecimale
a23, 23t435 - nu sunt constante ntregi
2)
0123, 01257 - constante ntregi octale
08965 - nu este constant ntreag octal deoarece 8 i 9 nu sunt cifre din baza 8
3)
0xa23B, 0XABC, 0xAaB23 - constante ntregi hexazecimale
0x09G - nu este constant ntreag hexazecimal deoarece G nu este liter din hexa
OBS: 1) Cifrele hexazecimale: 0 .. 9 i a .. f sau A .. F
2) Cifrele octale 0 .. 7
1.4.2 CONSTANTE REALE
O constant real este un numr real care se compune din:
semn +/- (ce poate lipsi)
parte ntreag ce poate fi vid (ex: .345 )
parte fracionar ce poate fi vid (ex: 123. )
un exponent (e sau E) care poate fi i vid (ex: 454e-2 )
!Atenie: Nu pot lipsi toate n acelai timp. Trebuie s existe ori partea ntreag, ori cea fracionar
OBS: Exponentul este format din litera e sau E urmat de un semn (opional) i de un ir de cifre
zecimale
Mod de reprezentare: 16 sau 32 bii
Constantele reale sunt de tip double (dubl precizie).
Dac se dorete ca ele s fie:
de tip float atunci vom termina constanta cu f sau F
de tip long double atunci terminm constanta cu l sau L
-2-
EXEMPLE: 343.23, -98.3, .89, -.45, 23., -5., 12E-3, -.56e+34. .99E10
Contraexemple: 565, e45 (lipsete partea ntreag sau fracionar), E+67, .
Tem:1) Dai 5 exemple de caractere grafice, 5 de caractere negrafice, 5 de identificatori, 5 de
cuvinte rezervate studiate pn acum.
2) Cte 2 exemple pentru toate tipurile de constante posibile din cele dou clase de
constante studiate
1.4.3 CONSTANTE CARACTER
O constant caracter reprezint un caracter i are ca valoare codul ASCII al caracterului
respectiv. innd cont de clasificarea setului de caractere studiat, vom avea urmtoarele tipuri de
constante caracter:
constante caracter grafice: de forma ' caracter ' ex: 'a', 'V' etc.
spaiu: '__'
constante caracter negrafice : de forma ' caracter negrafic '
' \n '- newline
' \t ' - TAB orizontal
' \v '- TAB vertical
' \b '- backspace
' \f ' - salt de pagin
' \r ' - deplasarea cursorului n prima coloan
' \' ' - apostrof
' \\ ' - pentru backshlash
' \0 ' - pentru caracterul NUL
EXEMPLE: Constant caracter grafic: 'A' - valoare 65, 'B' - valoare 66 etc
' ab ', ' a' ', ' m, ' 9 - nu sunt constante caracter
'!' - reprezint caracterul !
' " ' - reprezint caracterul "
Mod de reprezentare: n memorie vom avea codul Ascii al caracterului respectiv
1.4.4 CONSTANTE IR DE CARACTERE
O constant ir de caractere este format dintr-un ir de zero sau mai multe caractere
delimitate prim ghilimele.
OBS: 1) "..." nu fac parte din irul de caractere
Exemplu: "Aceasta este o lucrare n C++", irul va fi: Aceasta este o lucrare n C++
2) Dac dorim s folosim un caracter negrafic n irul de caractere atunci se va folosi
construcia cu \
Exemplu: "a\\b" - reprezint succesiunea de caractere a\b
"1\"2"- reprezint succesiunea de caractere 1"2
"1\n2"- reprezint succesiunea de caractere 1 <Enter>
3) " " reprezint irul vid
4) Un ir de caractere poate fi continuat de pe un rnd pe altul dac nainte de a apsa
tasta ENTER se tasteaz caracterul \, evident c, caracterele \ i ENTER nu vor face
parte din irul astfel obinut.
Contraexemple: Urmtoarele construcii nu sunt iruri de caractere:
'ab' - nu se folosete apostroful
" " " - pentru ca irul s conin caracterul " trebuie folosit construcia \
"a - lipsete ", adic "a"
-3-
#include <stdio.h>
#include <conio.h>
#define MAX 100.99
void main(void)
{
MAX = MAX + 1; /*ERROR*/
getch();
}
..............
#define A 100
.............
#define A 45.78
............
#undef
#define A 123
#define B A+120
.............
x = 3*B
/* x = 3*123+120 */
.............
Un alt caz este i urmtorul:
#define A 123
#define B (A+120)
.............
x = 3*B
/* x = 3*(123+120) */
.............
#undef B
..............
-5-