logo

C масив

Масивът се дефинира като колекция от подобни елементи от данни, съхранявани в съседни места в паметта. Масивите са производният тип данни в езика за програмиране C, който може да съхранява примитивния тип данни като int, char, double, float и т.н. Той също така има способността да съхранява колекцията от производни типове данни, като указатели, структура, и т.н. Масивът е най-простата структура от данни, където всеки елемент от данни може да бъде достъпен произволно чрез използване на неговия индексен номер.

C масивът е полезен, ако трябва да съхранявате подобни елементи. Например, ако искаме да съхраним оценките на ученик по 6 предмета, тогава не е необходимо да дефинираме различни променливи за оценките по различните предмети. Вместо това можем да дефинираме масив, който може да съхранява маркировките във всеки предмет в съседните места в паметта.

Използвайки масива, можем лесно да имаме достъп до елементите. Необходими са само няколко реда код за достъп до елементите на масива.

Свойства на масива

Масивът съдържа следните свойства.

  • Всеки елемент от масив е от един и същи тип данни и носи същия размер, т.е. int = 4 байта.
  • Елементите на масива се съхраняват в съседни места в паметта, където първият елемент се съхранява в най-малкото място в паметта.
  • Елементите на масива могат да бъдат произволно достъпени, тъй като можем да изчислим адреса на всеки елемент от масива с дадения основен адрес и размера на елемента от данни.

Предимство на C Array

1) Оптимизация на кода : По-малко код за достъп до данните.

2) Лесно преминаване : Използвайки for цикъла, можем лесно да извлечем елементите на масив.

3) Лесно сортиране : За да сортираме елементите на масива, ни трябват само няколко реда код.

4) Произволен достъп : Можем да имаме произволен достъп до всеки елемент, използвайки масива.

Недостатък на C Array

1) Фиксиран размер : Какъвто и размер да дефинираме по време на декларирането на масива, не можем да надхвърлим ограничението. Така че не увеличава размера динамично като LinkedList, което ще научим по-късно.

Декларация на C масив

Можем да декларираме масив на езика c по следния начин.

 data_type array_name[array_size]; 

Сега нека видим примера за деклариране на масива.

 int marks[5]; 

Тук int е тип_данни , марките са име_на_масив , а 5 е размер_масив .

Инициализация на C масив

Най-лесният начин за инициализиране на масив е чрез използване на индекса на всеки елемент. Можем да инициализираме всеки елемент от масива с помощта на индекса. Помислете за следния пример.

какво е хибернация в java
 marks[0]=80;//initialization of array marks[1]=60; marks[2]=70; marks[3]=85; marks[4]=75; 
инициализация на масив на език c

Пример за C масив

 #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&apos;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&apos;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(&apos;Enter the size of the array?&apos;); scanf(&apos;%d&apos;,&amp;n); printf(&apos;Enter the elements of the array?&apos;); 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 &amp;&amp; arr[i]!=largest) { sec_largest=arr[i]; } } printf(&apos;largest = %d, second largest = %d&apos;,largest,sec_largest); } </n;></pre> <hr></10;></pre></5;i++){></pre></5;i++){>

C масив: Декларация с инициализация

Можем да инициализираме c масива по време на декларацията. Да видим кода.

 int marks[5]={20,30,40,50,60}; 

В такъв случай има няма изискване за определяне на размера . Така че може да бъде написан и като следния код.

 int marks[]={20,30,40,50,60}; 

Нека да видим C програмата за деклариране и инициализиране на масива в C.

 #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(&apos;Enter the size of the array?&apos;); scanf(&apos;%d&apos;,&amp;n); printf(&apos;Enter the elements of the array?&apos;); 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 &amp;&amp; arr[i]!=largest) { sec_largest=arr[i]; } } printf(&apos;largest = %d, second largest = %d&apos;,largest,sec_largest); } </n;></pre> <hr></10;></pre></5;i++){>

C Пример за масив: Сортиране на масив

В следващата програма използваме метода за сортиране с мехурчета, за да сортираме масива във възходящ ред.

 #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(&apos;Enter the size of the array?&apos;); scanf(&apos;%d&apos;,&amp;n); printf(&apos;Enter the elements of the array?&apos;); 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 &amp;&amp; arr[i]!=largest) { sec_largest=arr[i]; } } printf(&apos;largest = %d, second largest = %d&apos;,largest,sec_largest); } </n;></pre> <hr></10;>