[] =new [o‘lcham] Bu yerda newoperatori ga mos ravishda xotiradan joy ajratadi. Dinamik massivlarni e’lon qilishga doir misollar:
n = Convert.ToInt32(Console.ReadLine());
int[] M1 = new int[10];
float[] M2 = new float[100];
double[] M3 = new double[n];
M1 va M2 nomli massivlarning elementlari uchun 10 va 100 ta joy ajratilgan. Ular ham dinamik massiv hisoblanadi. M3 massiv uchun xotiradan qancha joy ajratish foydalanuvchining o‘ziga havola qilingan, ya’ni n o‘zgaruvchisi klaviaturadan kiritiladi, bu o‘zgaruvchi qiymati esa M3 massiv o‘lchami sifatida qabul qilinadi. M3 massiv dinamik massivga yorqin misoldir.
Dinamik massiv o‘lchami ham statik massiv kabi aniqlanishi lozim, faqat bunda u dastur ishlashi davomida anqlanishi bilan static massivdan farq qiladi.
Indekslar massiv elementlariga murojat qilish uchun ishlatiladi. Indeks massivdagi element sonini bildiradi. Massivdagi to‘rtinchi elementga murojat qilish uchun biz 3 indeksidan foydalanishimiz kerak. Misol uchun :num[3]. Massiv elementlarining qiymatlarini olish va o‘rnatish uchun indekslardan foydalanamiz.
int[] nums=new int [4];
nums[0]=1;
nums[1]=2;
nums[2]=3;
nums[3]=5;
Console.ReadLine(nums[3]); //5
Va bizda faqat 4 ta element uchun belgilangan massiv mavjud bo‘lgani uchun , masalan oltinchi elementni qo‘llay olmaymiz nums[5]=5;. Agar biz buni qilishga harakat qilsak biz IndexOutOfRangeException-ni olamiz.
Statik massivlar elementlar oldindan aniqlanadi. Buning uchun sikl operatorlariga murojaat qilamiz. Masalan, quyidagi misolda dinamik massivga qiymat berish hamda uning elementlarini chop etish amallar ko‘rsatilgan. Biz massiv elementlari bilan ishlashimiz uchun for sikl operatori kerak boʻladi.
Misol: using System;
internal class ArrayExample
{
private static void Main()
{
int[] A = new int[10];
int i;
for (i = 0; i < 10; i = i + 1)
A[i] = i;
for (i = 0; i < 10; i = i + 1)
Console.WriteLine(‘A[‘ + i + ’]: ’ + A[i]);
}
}
Bu dasturda A massivning elementlari sifatida i ning qiymatlari kelmoqda. Xuddi shunday massiv elementlarini klaviatura orqali ham kiritish mumkin. Buning uchun quyidagi kodni ko‘raylik:
using System;
internal class ArrayExample
{
private static void Main()
{
int[] A = new int[10];
int i;
for (i = 0; i < 10; i = i + 1)
A[i] = Convert.ToInt32(Console.ReadLine());
for (i = 0; i < 10; i = i + 1)
Console.WriteLine(‘A[‘ + i + ’]: ’ + A[i]);
}
}
Massiv elementlari qiymatlaridan foydalanishga doir quyidagi sodda misolni ko‘rib chiqaylik.
Misol: using System;
internal class Average
{
private static void Main()
{
int[] A = new int[10];
int i;
double S = 0;
Console.WriteLine("Sonlarni kiriting");
for (i = 0; i < 10; i = i + 1)
A[i] = Convert.ToInt32(Console.ReadLine());
for (i = 0; i < 10; i++)
S += A[i];
S = S / 10;
Console.WriteLine(S);
}
}
Massivlar bilan ishlaganda uning o‘lchami chegarasidan chiqib ketmasligi lozim. Agar bu holat yuz bersa C# kompilyatori IndexOutOfRangeException xatoligi haqida xabar beradi.
Misol: using System;
internal class ArrayErr
{
private static void Main()
{
int[] sample = new int[10];
int i;
// Chegaradan chiqish holati yuz bermoqda
for (i = 0; i < 100; i = i + 1)
sample[i] = i;
}
}