Vektoret static dhe automatic
Nje variabel static I deklaruar brenda nje funksioni ekziston gjate gjithe programit por eshte i dukshem vetem brenda trupit te funksionit.
Nese deklarojme nje vektor si static brenda nje funksioni vlerat e tij inicializohen me 0 automatikisht dhe heret e tjera qe do te thirret funksioni ato do te ruajne vleren e mbetur ne thirrjen paraardhese sic tregohet ne shembullin e meposhtem.
Sa here qe te thirret funksioni vektor_automatik() vektori (automatic) array2 do te inicializohet me vlerat 1, 2 dhe 3.
Ndersa kur thirret funksioni vektor_static(), heren e pare vektori array1 (static) do te inicializohet me te gjitha vlerat 0. Ne thirrjet e tjera te ketij funksioni vektori array1 do te ruaje vlerat e mbetura nga thirrja e kaluar e funksionit.
// Shembull i vektoreve static dhe automatic
#include <iostream>
using namespace std;
void vektor_static( void );
void vektor_automatik( void );
int main()
{
cout << "Thirrja e pare e cdo funksioni:\n";
vektor_static();
vektor_automatik();
cout << "\n\nThirrja e dyte e cdo funksioni:\n";
vektor_static();
vektor_automatik();
cout << endl;
system ("pause");
return 0;
}
void vektor_static( void )
{
static int array1[ 3 ];
int i;
cout << "\nVlerat ne hyrje te vektor_static:\n";
for ( i = 0; i < 3; i++ )
cout << "array1[" << i << "] = " << array1[ i ] << " ";
cout << "\nVlerat ne dalje te vektor_static:\n";
for ( i = 0; i < 3; i++ )
cout << "array1[" << i << "] = "
<< ( array1[ i ] += 5 ) << " ";
}
void vektor_automatik( void )
{
int i;
static int array2[ ] = { 1, 2, 3 };
cout << "\n\nVlerat ne hyrje te vektor_automatik:\n";
for ( i = 0; i < 3; i++ )
cout << "array2[" << i << "] = "
<< array2[ i ] << " ";
cout << "\nVlerat ne dalje te vektor_automatik:\n";
for ( i = 0; i < 3; i++ )
cout << "array2[" << i << "] = "
<< ( array2[ i ] += 5 ) << " ";
}
/* Printon
Thirrja e pare e cdo funksioni:
Vlerat ne hyrje te vektor_static:
array1[0] = 0 array1[1] = 0 array1[2] = 0
Vlerat ne dalje te vektor_static:
array1[0] = 5 array1[1] = 5 array1[2] = 5
Vlerat ne hyrje te vektor_automatik:
array2[0] = 1 array2[1] = 2 array2[2] = 3
Vlerat ne dalje te vektor_automatik:
array2[0] = 6 array2[1] = 7 array2[2] = 8
Thirrja e dyte e cdo funksioni:
Vlerat ne hyrje te vektor_static:
array1[0] = 5 array1[1] = 5 array1[2] = 5
Vlerat ne dalje te vektor_static:
array1[0] = 10 array1[1] = 10 array1[2] = 10
Vlerat ne hyrje te vektor_automatik:
array2[0] = 6 array2[1] = 7 array2[2] = 8
Vlerat ne dalje te vektor_automatik:
array2[0] = 11 array2[1] = 12 array2[2] = 13
Press any key to continue . . .
*/