Menu
Coddy logo textTech

Diziler ve Fonksiyonlar

Coddy'nin C++ Journey'sinin Temeller bölümünün bir parçası — ders 62 / 74.

Diziler, fonksiyonlara doğrudan tam diziler olarak aktarılamaz. Bir diziyi bir fonksiyona aktarmaya çalıştığınızda, dizi ilk elemanına işaret eden bir işaretçiye "indirgenir" (decay).

Örneğin:

int numbers[5] = {1, 2, 3, 4, 5};
void processArray(int arr[]) {
	int size = std::size(arr);
}

std::size(arr) size gerçek dizi boyutunu vermeyecektir. arr burada aslında bir dizi değil, bir pointer'dır. Pointer'lar bir sonraki derste öğrenilecektir.

Bu nedenle, dizileri fonksiyonlara aktarırken genellikle boyutu ayrı bir parametre olarak geçirmemiz gerekir:

void processArray(int arr[], int size) {
    // Artık boyut parametresini kullanarak diziyle güvenli bir şekilde çalışabiliriz
}

Fonksiyonun nasıl çağrılacağı aşağıdadır:

int numbers[5] = {1, 2, 3, 4, 5};
processArray(numbers, 5);

Ayrıca bir fonksiyonda dizi döndürmek mümkün değildir:

int[] processArray(int arr[]) {
	return arr;
}

Bu geçersizdir. Bunun yerine * söz dizimini kullanmalısınız:

int* processArray(int arr[]) {
	return arr;
}
int* newArr = processArray(arr);

Yıldız (*) söz dizimi, bir sonraki kursta ele alınacak olan işaretçileri (pointers) ifade eder.

Kendin dene

Bu ders bir kod alıştırması içermiyor.

quiz iconKendini test et

Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.

Temeller bölümündeki tüm dersler