Unele variabile pot avea o valoare inițială, adică valoarea pe care variabila ia la începutul programului, dar care, în contrast cu valorile constantelor vor fi schimbate în timpul rulării. Valoarea inițială poate fi atribuită fie când se definește o variabilă, fie ca o instrucțiune separată.
Variabilele numerice sau de caractere (vom discuta mai târziu definiția de șiruri de caractere), valoarea poate fi atribuită atunci când acestea sunt definite:
char inițial = 'A';
rata flotă = 0,55;
În aceste instrucțiuni, am determinat un număr variabil întreg și îi atribuie o valoare inițială a 5. În continuare, am determinat inițial variabilă de caractere, dându-litera „A“ ca o valoare inițială, și o variabilă de tip float rata numit și valoarea inițială de 0,55. Valoarea unui șir de caractere trebuie să fie închise în ghilimele simple, în timp ce un număr în virgulă mobilă trebuie să aibă cel puțin un caracter la stânga și la dreapta punctului.
Dacă o variabilă este definită, îi puteți atribui o valoare într-o declarație separată folosind operatorul de atribuire (=):
Valoarea atribuită este valoarea inițială și se poate modifica în timpul executării programului, altfel variabila nu ar fi o variabilă.
Dacă valoarea inițială a variabilei nu este cunoscută în prealabil, după pornirea programului se poate introduce din tastatură, dintr-un fișier disc sau obținută ca urmare a unor calcule. Cu toate aceste metode vă veți cunoaște puțin mai târziu.
Definirea unei variabile de șir
Fig. 3.10. Tip de date de tip șir în memorie
Secvența \ 0 este numită caracter nul și este tratată ca un singur caracter.
După cum vă amintiți, limba C nu conține un tip de date șir și nu are niciun fel de instrumente pentru a lucra cu șiruri de caractere. Din fericire, C vă permite să lucrați cu date de tip șir, folosind matrice. Anterior, am definit deja șirul ca o serie de simboluri consecutive. Aceasta este ceea ce este - o serie de variabile simbolice, unite în ceva numit matrice. Elementele rând sunt stocate împreună în elemente de memorie consecutive. De exemplu, Figura 3.10 arată cum arată o variabilă cu valoarea "Hi". Fiecare literă este stocată într-o singură celulă de memorie în același mod ca și o singură variabilă caracter, dar întregul șir poate fi afișat pe ecran ca o singură unitate cu unul (puts) funcția. Secvența \ 0 este un simbol special pe care C îl introduce după fiecare linie. Se marchează sfârșitul liniei, indicând funcții cum ar fi puts (), unde ar trebui să opriți afișarea de caractere pe ecran.
Știți deja cum să definiți o constantă șir folosind direcția #define, care include caracterele șir din ghilimele:
#define CLIENT "Kate Timmons"
Pentru a defini o variabilă de șir, trebuie să utilizați tipul de caractere și să specificați numărul maxim de caractere pe care un șir poate conține. De exemplu, aceasta:
unde var_name reprezintă numele variabilei și N este numărul maxim de caractere care este întotdeauna închis în paranteze pătrate: linia [și spate].
Numărul din paranteze trebuie să fie unul mai mare decât numărul maxim de caractere pe care îl veți utiliza, deoarece C are nevoie de mai mult spațiu pentru a pune un caracter nul. De exemplu, o variabilă care conține abrevieri ale numelor de stat poate fi definită după cum urmează:
Fig. 3.11 Definirea unei variabile de șir Fig. 3.12. Nu puteți atribui unei variabile de șir o valoare care are mai multe caractere decât a fost rezervată pentru aceastaîn acest caz, așa cum se arată în figura 3.11, creează o variabilă șir, numită stat și conține două caractere, plus un caracter nul, care indică sfârșitul unei linii (\ 0).
De ce este atât de important, puteți explica exemplul de viață următor. Să presupunem că introduceți o variabilă care conține numele clienților. Ai definit-o după cum urmează:
Programul funcționează fără probleme, până când primiți o comandă de la domnul Flaglehoffen. Când încercați să introduceți numele în listă, programul dvs. se va opri din cauza unei erori de execuție, care este ilustrată în Figura 3.12.
Pentru a evita o asemenea neplăcere, puteți crește ușor numărul de caractere din definiția unei variabile:
Dar dacă există mai multe astfel de variabile în program, veți pierde o mulțime de memorie pe computer.
unde se folosește o instrucțiune neautorizată
Dacă doriți să atribuiți o valoare inițială unei variabile de șir, puteți face acest lucru definind variabila folosită ca fiind una dintre cele două valide
Fig. 3.13. Inițializarea unui rândmoduri. Puteți atribui o valoare unei definiții variabile înainte de funcția principal ():
client client [] = "Flaglehoffen";
Rețineți că în acest caz, valoarea numărului maxim de caractere din variabila șir în paranteze pătrate nu este indicată. Numărul maxim de caractere ale unei variabile de șir cu această metodă de detecție depinde de compilatorul utilizat, dar este practic determinat de numărul de caractere din valoarea inițială plus un (Fig 3.13). Rețineți că, ca parametru pentru funcția puts (), numai numele variabilei este utilizat fără paranteze pătrate.
Un alt mod de atribuire a unei valori inițiale în interiorul funcției principale () este oarecum mai complicat:
static char greet [] = "Bună ziua";
Definiția se face în interiorul funcției principale (), dar începe cu cuvântul static, iar variabila se numește statică. Variabila astfel definită poate fi utilizată numai în cadrul funcției din corpul din care a fost definită. Dacă doriți să atribuiți o valoare inițială unei variabile de șir definită în cadrul unei funcții, trebuie să o definiți ca o variabilă statică (vedeți capitolul 7 pentru detalii).