آموزش کار با متغیرهای محلی و سراسری در c++

آموزش کار با متغیر های محلی  ( local ) و سراسری ( global )  در c++

متغیر های محلی ( local ) در c++ :

برای کار با متغیر های محلی در سی پلاس پلاس در هر تابعی میتوان یکسری متغیر خاص همان تابع تعریف نمود که به آنها متغیرهای محلی یا local می گوییم. متغیرهای محلی فقط در همان تابع که تعریف شده اند شناخته شده میباشند.


void f1(void);
void main()
{
int a=8 , b=12;
f1()
cout<<a<<b;
}
void f1()
{
a++ ;
b-- ;
ccout<<a<<b;
}

نکته :

درمثال بالا a و b متغیرهای محلی تابع main هستند و در تابع f1 شناخته شده نمی باشند

بنابراین برنامه در زمان کامپایل با خطا مواجه می شود.

اگر int a=8 , b=12 را به تابع f1 بیافزاییم خروجی همان 8 و 12 است چون a و b تابع f1 متغیرهای محلی

همان تابع اند و ربطی بهم ندارند و صرفا فقط همنام هستند.

متغیر سراسری ( global ) در c++ :

این نوع متغیرها در خارج از توابع هستند ودر کلیه توابعی که بعد از تعریف متغیر می آیند شناخته شده اند.

متغیر های محلی سراسری در سی پلاس پلاس local global c++


void f1 ()
{
}
int a ;
void f2 ()
{
}
void main ()
{
}

مثال:


void f1( void);
int a , b;
void main ()
{
int c=8;
a=8; b=12;
f1();
cout<<a<<b<<c;
}
void f1()
{
int c=4;
a++ ; b-- ; c++ ;
cout<<a<<b<<c;
}

نکته :

در یک تابع می توان متغیر محلی همراه با متغیر سراسری در c++ تعریف و استفاده کرد در حالت معمولی فقط متغیر محلی در آن تابع قابل استفاده خواهد بود.


void f1( void);
int a,b,c;
void main()
{
int a=8;
b=12; c=5;
f1();
cout<<a<<b<<c;
}
void f1()
{
int b=20;
a=8;
a++; b--; c++;
cout<<a<<b<<c;
}

کار با دستور return در c++ :

در توابعی که مقدار برمی گردانند از دستور return برای بازگرداندن مقدار استفاده می کنیم.

برخی از توابع خروجی ندارند مانند تابع getch در c++ که قبلا در مورد آن توضیح دادیم.

return دستور خروج از تابع و نیز بازگشت مقدار است.


long int p(void);
void main()
{
long int x,y;
x=p();
y=2* p()+p();
cout<<p();
}
long int p()
{
long int c=1;
int a ,b, i;
cin>>a>>b;
for(i=0 ; i<b ;i++)
c*=a;
return c;
}


هنگام فراخوانی تابع می توان یک سری مقادیر را به تابع فرستاد که این مقادیر آرگومان نامیده می شوند.

آرگومان ها در توابع توسط پارامتر های تابع دریافت می گردند و تابع با توجه به این مقادیر اجرا می گرند.


void main()
{
int a, b,c;
f1(a,b,c);
}
void f1(x,y,z)
{
}

نکته:

پارامترهای تابع جز متغیر های محلی تابع هستند.

در ابتدای تابع باید نوع پارامترهای آن را مشخص کنیم. برای این منظور به یکی از دو روش زیر عمل میکنیم.

روش اول :


void f1( int x, int y, float z)
{
}

روش دوم :


void f1(x ,y ,z)
int x , y;
float z;
{
}

مثال:


long int p(int , int);
void main()
{
long int x,y;
int a,b;
x=p(a,b);
y=p(8,a);
cout<<p(a+b ,a-b);
}
long int p(int a, int b)
{
long int c=1;
int i;
for(i=0 ; i<b;i++)
c*=a;
return c;
}

در مثال بالا تابع تعریف شده دو ورودی گرفته و نوع خروجی آن Long int میباشد.

در بدنه اصلی این تابع با مقادیر 8 و مقدار متغیر a فراخوانی شده است.