Massiivid edastatakse funktsioonile C

Selles õpetuses õpite näidete abil massiive (nii ühemõõtmelisi kui ka mitmemõõtmelisi massiive) C-programmeerimise funktsioonile edastama.

C-programmeerimisel saate funktsioonidele edastada kogu massiivi. Enne kui sellest teada saame, vaatame, kuidas saab massiivi üksikuid elemente funktsioonidele edastada.

Üksikute massiivi elementide edastamine

Massiivielementide edastamine funktsioonile sarnaneb muutujate edastamisega funktsioonile.

Näide 1: massiivi läbimine

 #include void display(int age1, int age2) ( printf("%d", age1); printf("%d", age2); ) int main() ( int ageArray() = (2, 8, 4, 12); // Passing second and third elements to display() display(ageArray(1), ageArray(2)); return 0; ) 

Väljund

 8 4 

Näide 2: Massiivide edastamine funktsioonidele

 // Program to calculate the sum of array elements by passing to a function #include float calculateSum(float age()); int main() ( float result, age() = (23.4, 55, 22.6, 3, 40.5, 18); // age array is passed to calculateSum() result = calculateSum(age); printf("Result = %.2f", result); return 0; ) float calculateSum(float age()) ( float sum = 0.0; for (int i = 0; i < 6; ++i) ( sum += age(i); ) return sum; )

Väljund

 Tulemus = 162,50

Terve massiivi edastamiseks funktsioonile edastatakse argumendina ainult massiivi nimi.

 result = calculateSum(age);

Pange tähele (), et funktsiooni määratluses kasutatakse.

 float calculateSum(float age()) (… )

See annab kompilaatorile teada, et edastate funktsioonile ühemõõtmelise massiivi.

Mitmemõõtmeliste massiivide edastamine funktsioonile

Mitmemõõtmeliste massiivide edastamiseks funktsioonile edastatakse funktsioonile ainult massiivi nimi (sarnaselt ühemõõtmelistele massiividele).

Näide 3: kahemõõtmeliste massiivide edastamine

 #include void displayNumbers(int num(2)(2)); int main() ( int num(2)(2); printf("Enter 4 numbers:"); for (int i = 0; i < 2; ++i) for (int j = 0; j < 2; ++j) scanf("%d", &num(i)(j)); // passing multi-dimensional array to a function displayNumbers(num); return 0; ) void displayNumbers(int num(2)(2)) ( printf("Displaying:"); for (int i = 0; i < 2; ++i) ( for (int j = 0; j < 2; ++j) ( printf("%d", num(i)(j)); ) ) )

Väljund

 Sisestage 4 numbrit: 2 3 4 5 Kuvamine: 2 3 4 5 

Märkus: C-programmeerimisel saate massiive funktsioonidele edastada, kuid te ei saa massiive funktsioonidest tagastada.

Huvitavad Artiklid...