Introducere în Array-uri în programarea C

Matricea este un tip de structură de date care este utilizat pentru a stoca date omogene în locații de memorie contigua.

Aici indexul se referă la locația unui element din tablou. Să ne imaginăm dacă A (L) este numele tabloului în care „A” este numele variabilei și „L” este lungimea tabloului, adică numărul de elemente prezente în tablou.

Apoi A (i) reprezintă elementul la acea poziție „i + 1” din tablă. De exemplu:

A (6) = 72 înseamnă element la 6 + 1-a locație a tabloului.

Nevoie de Array

Ajută la reprezentarea unui număr mare de elemente folosind o singură variabilă. De asemenea, face accesarea rapidă a elementului mai ușor de stocat în locația de memorie folosind indexul tabloului care reprezintă locația unui element din tablă ..

Accesarea elementelor în Array

Accesarea oricărui element din tablou este mult mai ușoară și se poate face în O (1) complexitate

Indicii unui tablou încep de la 0 până la -1, 0 indică primul element al tabloului și -1 indică ultimul element al tabloului. În mod similar, -2 indică ultimul, dar un singur element al tabloului.

De exemplu:

Fie A un tablou cu lungimea 7 și trebuie să acceseze elementul cu valoarea 94, atunci el trebuie să utilizeze A (3).

Sintaxă

printf („% d”, A (3)) - Aceasta va imprima 94 unde 3 este indexul la care trebuie să accesăm și a este variabila tabloului.

Declarația de Array în C

În C, tabloul trebuie declarat corect înainte de a-l folosi cu numele și lungimea sa. Există trei sintaxe în care putem declara tablouri în programul ac

Sintaxa 1

int A (7) = (21, 56, 32, 52, 63, 12, 48) - Declarând lungimea și elementele tabloului

Programul C

#include
int main(
int a(7) = (21, 56, 32, 52, 63, 12, 48);
int i;
for(i=0;i<7;i++)(
printf(“%d\n”, a(i));
)
return 0;
)

ieşire:

Sintaxa 2

int A () = (21, 56, 32, 52, 63, 12, 48) - Declarea lungimii elementelor tabloului

Programul C

#include
int main(
int a() = (21, 56, 32, 52, 63, 12, 48);
int i;
for(i=0;i<7;i++)(
printf(“%d\n”, a(i));
)
return 0;
)

ieşire:

Sintaxa 3

int A (7); - Declarând numai lungimea tabloului.

Programul C

#include
int main(
int a(7) ;
int i;
printf(“Please enter the array elements”);
for(i=0;i<7;i++)(
scanf(“%d\n”, &a(i));
)
printf(“Elements of array are”);
for(i=0;i<7;i++)(
printf(“%d\n”, a(i));
)
return 0;
)

ieşire:

Sintaxa 4

int A (7) = (0); - Lungimea de declarare a tabloului și a elementului atunci când un element este același la toate pozițiile.

Programul C

#include
int main(
int a(7)=(0) ;
int i;
printf(“Elements of array are”);
for(i=0;i<7;i++)(
printf(“%d\n”, a(i));
)
return 0;
)

ieşire:

Sintaxa 5

Declarând lungimea tabloului și, de asemenea, valoarea elementelor în care toate valorile sunt aceleași

Cazul 1 - int a (3) = ((0..1) = 3) -

Cazul 2 - int a (3) = (0); -

Sintaxa 6

int * a; - Declarând tabloul ca indicator pentru locația elementelor.

Fără verificare în afara marcajului

În cazul în care se încearcă accesarea elementului în afara limitelor tabloului, compilatorul nu indică nicio eroare, în schimb generează un avertisment. Și oferă, de asemenea, o ieșire neașteptată.

Exemplu

a (4) = (2, 3, 4, 5);

Dacă scriem printf (a (4));

Rezultatul va fi 225263545 - neașteptat

De asemenea, în C, compilatorul nu greșește inițializarea unui tablou cu mai multe elemente de număr decât lungimea specificată în declarație. De exemplu, programul de mai jos nu arată o eroare în schimb.

Programul C

#include
int main(
int arr(2)=(10, 22, 56, 32, 45, 89) ;
int i;
printf(“Elements of array are”);
for(i=0;i<2;i++)(
printf(“%d\n”, arr(i));
)
return 0;
)

ieşire:

Recuperarea elementelor în Array

Recuperarea elementelor unui tablou și tipărirea lor este o sarcină foarte ușoară. Este nevoie doar de o buclă pentru a imprima n elemente ale unui tablou. astfel complexitatea unui astfel de program este O (n).

De exemplu, permiteți a a (7) = (23, 56, 8944, 58, 24, 5);

Programul pentru imprimarea elementelor unui tablou este

Programul C

#include
int main(
int arr(7)=(23, 56, 8, 944, 58, 24, 5) ;
int i;
printf(“Elements of array are”);
for(i=0;i<7;i++)(
printf(“%d\n”, arr(i));
)
return 0;
)

ieşire:

Array multidimensional

Limbajul C permite, de asemenea, tablouri multidimensionale, adică `tablouri care pot reține elemente atât în ​​rânduri, cât și în coloane.

Declaraţie

În timp ce se declară tabloul multidimensional, trebuie specificat lungimea tuturor dimensiunilor, cu excepția celei din stânga, deoarece aceasta este opțională.

Exemplu

Declararea tabloului în modul de mai jos va duce la o eroare, deoarece alte dimensiuni decât cele mai stângi nu sunt specificate.

Int a () () (2) = (

((1, 2), (3, 4)),

((5, 6), (7, 8))

)

Exemplu

Mai jos este una dintre sintaxa corectă pentru declararea tabloului multidimensionale în C.

Int a () (3) = (

(52, 56, 86), (44, 6, 21)

)

Trecerea Array ca parametru în funcție

Uneori, în timp ce realizăm o funcție, solicităm ca funcția să utilizeze o serie de variabile pe care trebuie să le ia din funcții diferite. La acea dată aceste variabile trebuie trecute ca parametru pentru apelul funcțional. Dar în cele din urmă, pe măsură ce numărul de variabile crește, trebuie să folosim un tablou pentru a trece variabila sau în cazul în care unele operații trebuie să fie efectuate pe tablele, atunci trebuie să apară și o trecere completă ca parametru într-o funcție. Pentru trecerea unui tablou ca variabilă la funcție:

1. Apelează după valoare

În acest tip de apelare a metodelor, valorile reale ale tabloului sunt copiate în parametrul formal unde ambele sunt stocate în locație diferită, astfel încât orice modificare făcută în valori nu se reflectă în funcție.

Programul C

#include
Void show( char ch)
(
printf("%c ", ch);
)
int main()
(
char arr() = ('a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j');
for (int x=0; x<10; x++)
(
show(arr(x));//value of array //elements are passed as an argument
)
return 0;
)

ieşire:

2. Apelează prin referință

În timp ce se apelează la o funcție când în loc să treacă valorile reale ale tabloului, referința la variabilă este transmisă ca parametru, atunci este cunoscută sub denumirea de apel prin referință.

Programul C

#include
Void show( char ch)
(
printf("%c ", ch);
)
int main()
(
char arr() = (1, 2, 3, 4, 5, 6, 7, 8, 9, 0);
for (int x=0; x<10; x++)
(
show(&arr(x));//reference of array //elements are passed as an argument
)
return 0;
)

ieşire:

3. Trecerea întregii Array ca argument

De ex. Să fie un tablou de 7 elemente.disp este o funcție de afișare a elementelor unui tablou care ia 2 argumente, mai întâi care indică prima locație a tabloului și alte lungimea tabloului (var2). este trecută variabila arr care indică locația primului element de matrice și lungime, adică 7.

Programul C

#include
void disp( int *var1, int var2)
(
for(int x=0; x (
printf("Value of var_arr(%d) is: %d \n", x, *var1);
/*increment pointer for next element fetch*/
var1++;
)
)
int main()
(
int var_arr() = (12, 22, 38, 85, 65, 66, 77);
disp(var_arr, 7);
return 0;
)
#include
void disp( int *var1, int var2)
(
for(int x=0; x (
printf("Value of var_arr(%d) is: %d \n", x, *var1);
/*increment pointer for next element fetch*/
var1++;
)
)
int main()
(
int var_arr() = (12, 22, 38, 85, 65, 66, 77);
disp(var_arr, 7);
return 0;
)

ieşire:

Memorie alocare Array

Reprezentarea memoriei în limbajul C este considerată a fi împărțită în 5 secțiuni, așa cum este prezentat mai jos: -

  1. Segment text
  2. Segmentul de date inițializat
  3. Segmentul de date neinițializat
  4. Grămadă
  5. Morman

Datele, acumulatorul și stiva sunt cele trei segmente în care matricile pot fi alocate memorii pentru stocarea elementelor sale, la fel ca alte variabile.

  1. Schițe dinamice: Matricile dinamice sunt tablouri, care au nevoie de locația memoriei pentru a fi alocate la timpul de execuție. Pentru aceste tipuri de matrice, memoria este alocată la locația de memorie heap.
  2. Arrayuri globale sau statice: Acestea sunt tipul de tablouri care sunt alocate la timp de compilare. Astfel, memoria segmentului de date este întotdeauna alocată pentru aceste tipuri de tablouri.
  3. Arrayuri locale: tablourile care sunt inițializate într-o funcție sau bloc sunt cunoscute sub numele de tablouri locale. Aceste tipuri de matrice obțin memorie alocată pe segmentul stivei.

Array de caractere

În C, șirurile sunt considerate un tablou unidimensional de caractere cu caracter nul '\ 0' în ultima poziție pe care compilatorul îl adaugă automat.

De exemplu, „iubesc codificarea” este considerată un tablou cu o singură dimensiune în c de lungime 14, incluzând caracterul „\ 0” în final.

Declarație: Există 2 moduri de a declara și a inițializa matricea de caractere-

  1. char str (12) = „Îmi place codul”;
  2. char str (12) = ('I', '', 'l', 'o', 'v', 'e', ​​'', 'c', 'o', 'd', 'e, ' \ 0 ''); - Aici trebuie să-l încheiem cu „\ 0” caracter la sfârșit.
  3. Char ch (3) = 'modi' - Declarație ilegală

Luarea de intrare și ieșire

În timp ce preiați și afișați ieșirea în C pentru tabloul de caractere '% c', puteți folosi funcția scanf () și respectiv printf ().

În timp ce se implementează aceeași pentru șiruri „% s”, se poate utiliza, dar nu mai scanează dacă apare primul caracter alb.

Programul C:

#include
#include
int main()
(
char str(20);
printf(“Enter a string”);
scanf(“%(^\n)”, &str);
printf(“%s”, str);
return 0;
)

ieşire:

În afară de funcțiile printf și scanf, C oferă, de asemenea, funcții de șir, cum ar fi gets () și pune () pentru a ignora spațiile albe ale șirului în timp ce scanează și tipărește.

Concluzie

Array este un tip de structură de date utilizat pentru stocarea datelor omogene într-o locație de memorie contiguă. Schițele din programare sunt utilizate ca reprezentare pentru diferite structuri complexe de date, cum ar fi un arbore, teanc, limbajul etc.C permite tablouri multidimensionale pentru toate tipurile de date primitive. Șirurile sunt, de asemenea, reprezentate ca un tablou de caractere, cu caracterul nul '\ 0' ca ultim caracter. Arătări în programare permit regăsirea rapidă și accesarea directă a elementelor de tablă folosind indexul în care este stocat elementul.

Articole recomandate

Acesta este un ghid pentru Schiri în programarea C. Aici vom discuta Introducerea, Needs of Array, împreună cu Trecerea funcțiilor Array include Call by Value, Call by Reference și Trecerea întregului tablou ca argument. De asemenea, puteți consulta următoarele articole pentru a afla mai multe -

  1. Arhiere 3D în C
  2. Cele mai bune compilatoare C
  3. Modele în programarea C
  4. Factorial în C
  5. Ghid pentru diagrame în C #
  6. Arrayuri 3D în C ++
  7. Ghid pentru Arys în PHP
  8. C Înmulțirea matricei de programare
  9. Funcții de matricea PHP | Tipuri | Exemple