array (dizi)

Dizi, bir index numarasıyla erişilebilen değişkenler bütünüdür.

Dizi Tanımlamak

Aşağıdaki yöntemlerden hepsi dizi tanımlamak için kullanılabilir.

int myInts[6];
int myPins[] = {2, 4, 8, 3, 6};
int mySensVals[6] = {2, 4, -8, 3, 2};
char message[6] = "hello";

myInts dizisinde olduğu gibi dizi elemanlarını belirtmeden de dizi tanımlanabilir. myPins dizisindeki gibi dizi boyutunu belirtmeden sadece dizi elemanlarını belirterek dizi oluşturabilirsiniz. Derleyici dizi elemanlarının sayısı kadar eleman içeren dizi boyutunu belirleyecektir. İsterseniz hem dizi boyutunu hem de dizi elemanlarını belirterek dizi oluşturabilirsiniz. mySensVals ve message dizilerinin eleman sayılarının dizi boyutundan bir eksik olduğuna dikkat edin. Bu şekilde dizinin boyutundan eksik eleman sayısıyla tanımlama yapıldığında boş kalan elemanların yerine null değeri yazılacaktır.

Dizi Elemanlarına Erişmek

Dizilerin index numaraları yani elemanların sıra numaraları sıfırdan başlar. Yani dizinin ilk elemanı sıfır sıra numarasını alır.

Aşağıdaki 10 elemanlı tasayı dizisini inceleyelim.

int myArray[10]={9, 3, 2, 4, 3, 2, 7, 8, 9, 11};
// myArray[0] 9 değerini taşır
// myArray[9] 11 değerini taşır 
// myArray[10] geçersiz bir dizi elemanıdır, rastgele bir bellek bölgesine erişir

Bu nedenle dizi elemanlarına erişirken hatalarla karşılaşmamak için dikkatli olunmalıdır. BASIC veya JAVA dillerinin aksine C++ derleyicisi dizi elemanlarına erişirken dizinin sınırları içinde kalınıp kalınmadığını kontrol etmez.

Dizinin bir elemanına değer atamak:

mySensVals[0] = 10;

Dizinin birinci elemanına 10 değerini atar.

Dizinin bir elemanını elde etmek:

x = mySensVals[4];

Dizinin beşinci elemanını x değişkenine aktarır.

Diziler ve FOR Döngüleri

Diziler genellikle for döngüleri ile kontrol edilir. Örneğin dizinin elemanlarını seri port ekranına yazdırmak için aşağıdaki gibi bir for döngüsü yazılabilir.

for (byte i = 0; i < 5; i = i + 1) {
  Serial.println(myPins[i]);
}
Was this page helpful?