Masīvs ir definēts kā līdzīga veida datu vienumu kolekcija, kas glabājas blakus esošās atmiņas vietās. Masīvi ir atvasināts datu tips C programmēšanas valodā, kurā var saglabāt primitīvus datu tipus, piemēram, int, char, double, float utt. Tam ir arī iespēja saglabāt atvasinātu datu tipu kolekciju, piemēram, rādītājus, struktūru, utt. Masīvs ir vienkāršākā datu struktūra, kurā katram datu elementam var nejauši piekļūt, izmantojot tā indeksa numuru.
C masīvs ir izdevīgs, ja jums ir jāuzglabā līdzīgi elementi. Piemēram, ja mēs vēlamies saglabāt skolēna atzīmes 6 priekšmetos, tad mums nav jādefinē dažādi mainīgie dažāda priekšmeta atzīmēm. Tā vietā mēs varam definēt masīvu, kas var saglabāt atzīmes katrā priekšmetā blakus esošajās atmiņas vietās.
Izmantojot masīvu, mēs varam viegli piekļūt elementiem. Lai piekļūtu masīva elementiem, ir nepieciešamas tikai dažas koda rindiņas.
Masīva īpašības
Masīvs satur šādas īpašības.
- Katram masīva elementam ir tāds pats datu tips un vienāds izmērs, t.i., int = 4 baiti.
- Masīva elementi tiek glabāti blakus esošās atmiņas vietās, kur pirmais elements tiek saglabāts mazākajā atmiņas vietā.
- Masīva elementiem var piekļūt nejauši, jo mēs varam aprēķināt katra masīva elementa adresi ar norādīto bāzes adresi un datu elementa lielumu.
C masīva priekšrocība
1) koda optimizācija : mazāk koda, lai piekļūtu datiem.
2) pārvietošanās vieglums : izmantojot for cilpu, mēs varam viegli izgūt masīva elementus.
3) Vienkārša šķirošana : Lai kārtotu masīva elementus, mums ir vajadzīgas tikai dažas koda rindiņas.
4) Brīvpiekļuve : Mēs varam piekļūt jebkuram elementam nejauši, izmantojot masīvu.
C masīva trūkums
1) Fiksēts izmērs : Neatkarīgi no izmēra, ko mēs definējam masīva deklarēšanas laikā, mēs nevaram pārsniegt ierobežojumu. Tātad tas nepalielinās dinamiski kā LinkedList, ko mēs uzzināsim vēlāk.
C masīva deklarācija
Mēs varam deklarēt masīvu c valodā šādā veidā.
data_type array_name[array_size];
Tagad apskatīsim piemēru masīva deklarēšanai.
int marks[5];
Lūk, int ir datu tips , zīmes ir masīva_nosaukums , un 5 ir masīva_izmērs .
C masīva inicializācija
Vienkāršākais veids, kā inicializēt masīvu, ir izmantot katra elementa indeksu. Mēs varam inicializēt katru masīva elementu, izmantojot indeksu. Apsveriet šādu piemēru.
slf4j vs log4j
marks[0]=80;//initialization of array marks[1]=60; marks[2]=70; marks[3]=85; marks[4]=75;
C masīva piemērs
#include int main(){ int i=0; int marks[5];//declaration of array marks[0]=80;//initialization of array marks[1]=60; marks[2]=70; marks[3]=85; marks[4]=75; //traversal of array for(i=0;i<5;i++){ printf('%d ',marks[i]); } end of for loop return 0; < pre> <p> <strong>Output</strong> </p> <pre> 80 60 70 85 75 </pre> <h2>C Array: Declaration with Initialization</h2> <p>We can initialize the c array at the time of declaration. Let's see the code.</p> <pre> int marks[5]={20,30,40,50,60}; </pre> <p>In such case, there is <strong>no requirement to define the size</strong> . So it may also be written as the following code.</p> <pre> int marks[]={20,30,40,50,60}; </pre> <p>Let's see the C program to declare and initialize the array in C.</p> <pre> #include int main(){ int i=0; int marks[5]={20,30,40,50,60};//declaration and initialization of array //traversal of array for(i=0;i<5;i++){ printf('%d ',marks[i]); } return 0; < pre> <p> <strong>Output</strong> </p> <pre> 20 30 40 50 60 </pre> <h2>C Array Example: Sorting an array</h2> <p>In the following program, we are using bubble sort method to sort the array in ascending order.</p> <pre> #include void main () { int i, j,temp; int a[10] = { 10, 9, 7, 101, 23, 44, 12, 78, 34, 23}; for(i = 0; i<10; i++) { for(j="i+1;" j a[i]) temp="a[i];" a[i]="a[j];" a[j]="temp;" } printf('printing sorted element list ... '); for(i="0;" i<10; printf('%d ',a[i]); < pre> <h2>Program to print the largest and second largest element of the array.</h2> <pre> #include void main () { int arr[100],i,n,largest,sec_largest; printf('Enter the size of the array?'); scanf('%d',&n); printf('Enter the elements of the array?'); for(i = 0; i<n; i++) { scanf('%d',&arr[i]); } largest="arr[0];" sec_largest="arr[1];" for(i="0;ilargest)" else if (arr[i]>sec_largest && arr[i]!=largest) { sec_largest=arr[i]; } } printf('largest = %d, second largest = %d',largest,sec_largest); } </n;></pre> <hr></10;></pre></5;i++){></pre></5;i++){>
C Masīvs: deklarācija ar inicializāciju
Mēs varam inicializēt c masīvu deklarēšanas laikā. Apskatīsim kodu.
int marks[5]={20,30,40,50,60};
Tādā gadījumā ir nav prasības noteikt izmēru . Tāpēc to var rakstīt arī kā šādu kodu.
int marks[]={20,30,40,50,60};
Apskatīsim C programmu, lai deklarētu un inicializētu masīvu C valodā.
#include int main(){ int i=0; int marks[5]={20,30,40,50,60};//declaration and initialization of array //traversal of array for(i=0;i<5;i++){ printf(\'%d \',marks[i]); } return 0; < pre> <p> <strong>Output</strong> </p> <pre> 20 30 40 50 60 </pre> <h2>C Array Example: Sorting an array</h2> <p>In the following program, we are using bubble sort method to sort the array in ascending order.</p> <pre> #include void main () { int i, j,temp; int a[10] = { 10, 9, 7, 101, 23, 44, 12, 78, 34, 23}; for(i = 0; i<10; i++) { for(j="i+1;" j a[i]) temp="a[i];" a[i]="a[j];" a[j]="temp;" } printf(\'printing sorted element list ... \'); for(i="0;" i<10; printf(\'%d \',a[i]); < pre> <h2>Program to print the largest and second largest element of the array.</h2> <pre> #include void main () { int arr[100],i,n,largest,sec_largest; printf('Enter the size of the array?'); scanf('%d',&n); printf('Enter the elements of the array?'); for(i = 0; i<n; i++) { scanf(\'%d\',&arr[i]); } largest="arr[0];" sec_largest="arr[1];" for(i="0;ilargest)" else if (arr[i]>sec_largest && arr[i]!=largest) { sec_largest=arr[i]; } } printf('largest = %d, second largest = %d',largest,sec_largest); } </n;></pre> <hr></10;></pre></5;i++){>
C Masīva piemērs: masīva kārtošana
Nākamajā programmā mēs izmantojam burbuļu kārtošanas metodi, lai kārtotu masīvu augošā secībā.
#include void main () { int i, j,temp; int a[10] = { 10, 9, 7, 101, 23, 44, 12, 78, 34, 23}; for(i = 0; i<10; i++) { for(j="i+1;" j a[i]) temp="a[i];" a[i]="a[j];" a[j]="temp;" } printf(\'printing sorted element list ... \'); for(i="0;" i<10; printf(\'%d \',a[i]); < pre> <h2>Program to print the largest and second largest element of the array.</h2> <pre> #include void main () { int arr[100],i,n,largest,sec_largest; printf('Enter the size of the array?'); scanf('%d',&n); printf('Enter the elements of the array?'); for(i = 0; i<n; i++) { scanf(\'%d\',&arr[i]); } largest="arr[0];" sec_largest="arr[1];" for(i="0;ilargest)" else if (arr[i]>sec_largest && arr[i]!=largest) { sec_largest=arr[i]; } } printf('largest = %d, second largest = %d',largest,sec_largest); } </n;></pre> <hr></10;>
10;>5;i++){>5;i++){>