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 . . .
*/