Kalimi i vektoreve ne funksione

 Nje vektor mund te kalohet si argument tek nje funksion.

Ne prototipin e funksionit brenda kllapave rrethore shkruhet tipi i te dhenave dhe nje pale kllapa katrore [].

int funx(int []);

 

Ne koken e funksionit shkruhet edhe emri i vektorit para kllapave katrore [].

int funx(int v[])

Ne thirrjen e funksionit shkruhet vetem emri i vektorit ne formen:

funx(vek);

Nese dergojme si argument tek nje funksion te gjithe vektorin, do te kemi

thirrje sipas references ose adreses (call by reference). Ne kete menyre funksioni mund te modifikoje te dhenat e vektorit.

Emri i vektorit perfaqeson adresen e elementit te pare te tij.

Pra thirrja e funx do ishte e njejte me

funx(&vek[0]);

Nese dergojme si argument elementet e vektorit ne vecanti por jo te gjithe vektorin, do te perdoret thirrja sipas vleres (call by value)  ashtu si me variablat e thjeshte.


     // Shembull i kalimit te vektoreve ne funksione

#include <iostream>

#include <iomanip>

using namespace std;

void modifikoVektor( int [], int );

void modifikoElement( int );

int main()

{

   const int arraySize = 5;

   int i, a[ arraySize ] = { 0, 1, 2, 3, 4 };

 

   cout << "Kalimi i gjithe vektorit me thirrje sipas references"

        << "\n\nVlerat e vektorit origjinal jane:\n";

 

   for ( i = 0; i < arraySize; i++ )

      cout << setw( 3 ) << a[ i ];

 

   cout << endl;

 

   // thirrje sipas adreses

   modifikoVektor( a, arraySize ); 

 

   cout << "Vlerat e vektorit te modifikuar jane:\n";

 

   for ( i = 0; i < arraySize; i++ )

      cout << setw( 3 ) << a[ i ];

 

   cout << "\n\n\n"

        << "Kalimi i nje elementi te vektorit me thirrje sipas vleres:"

        << "\n\nVlera e a[3] eshte " << a[ 3 ] << '\n';

 

   modifikoElement( a[ 3 ] );

 

   cout << "nVlera e a[3] pas thirrjes eshte " << a[ 3 ] << endl;

   system ("pause");

   return 0;

}

 

void modifikoVektor( int b[], int sizeOfArray )

{

   for ( int j = 0; j < sizeOfArray; j++ )

      b[ j ] *= 2;

}

 

void modifikoElement( int e )

{

   cout << "Vlera ne funksionin modifikoElement eshte "

        << ( e *= 2 ) << endl;

}

 

/* Printon

Kalimi i gjithe vektorit me thirrje sipas references

 

Vlerat e vektorit origjinal jane:

  0  1  2  3  4

Vlerat e vektorit te modifikuar jane:

  0  2  4  6  8

 

Kalimi i nje elementi te vektorit me thirrje sipas vleres:

 

Vlera e a[3] eshte 6

Vlera ne funksionin modifikoElement eshte 12

nVlera e a[3] pas thirrjes eshte 6

Press any key to continue . . .

*/