Menu
CoddyTech

Diziler ve Fonksiyonlar

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

Diziler, tam diziler olarak işlevlere doğrudan aktarılamaz. Bir diziyi bir işleve aktarmaya çalıştığında, dizi ilk öğesini gösteren bir işaretçiye “dönüşür”.

Örneğin:

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

std::size(arr) burada derlenmez, çünkü arr aslında bir işaretçidir, dizi değildir ve bir işaretçi dizinin boyutunu saklamaz. İşaretçiler bir sonraki kursta öğrenilecektir.

Bu nedenle dizileri işlevlere aktarırken genellikle boyutu ayrı bir parametre olarak aktarmamız gerekir:

void processArray(int arr[], int size) {
    // Artık size parametresini kullanarak dizi üzerinde güvenle çalışabiliriz
}

Fonksiyonun nasıl çağrılacağı şöyle:

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özdizimini kullanmalısın:

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

Yıldız (*) sözdizimi, sonraki kursta ele alınacak işaretçileri 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

Kendi başına pratik yap: Online C++ derleyicisi