PDA

View Full Version : global کردن



M.soheil
پنج شنبه 16 آذر 1391, 17:47 عصر
سلام
فرض کنیم ما در تابع main داده ها را از کاربر میگیریم و تشکیل یک ارایه میدهیم.راهی هست که این داده را تبدیل به نوع global کنیم یعنی علاوه در مین در توابع دیگر و خارج از مین دسترسی داشته باشیم.؟:متفکر:

MrasoolF
پنج شنبه 16 آذر 1391, 18:12 عصر
بعد از تعریف کتابخونه ها و بالای تابع مین (قبل از شروع تابع مین) میتونی متغییر سراسری تعریف کنی. خوب اگه قبل متغییر ها تو تابع & بذاری میتونی اونارو با رفرنس (ارجاع) فراخوانی کنی. ولی این کار خیلی وقت ها مشکل ساز میشه چون اگه اونو تغییر بدی متغییر مورد نظر در تمام برنامه تغییر میکنه (حتی توابع دیگه) که این کار بعضی وقت ها باعث تغییر های نا خواسته میشه.

jannatmakan
پنج شنبه 16 آذر 1391, 18:46 عصر
سلام
فرض کنیم ما در تابع main داده ها را از کاربر میگیریم و تشکیل یک ارایه میدهیم.راهی هست که این داده را تبدیل به نوع global کنیم یعنی علاوه در مین در توابع دیگر و خارج از مین دسترسی داشته باشیم.؟:متفکر:

سلام. اصلاً احتیاجی نیست شما کاری بکنی دوست عزیز. برخلاف متغیرهایی که تک مقداری هستند، برای دسترسی به مقادیر آرایه در خارج از main ، احتیاج به ارسال با ارجاع ندارید. فقط کافیه که اون
آرایه رو به عنوان پارامتر به تابع بدید. همین :لبخندساده: قطعه کد ساده ی زیر، این مدّعا رو ثابت می کنه.


#include<iostream.h>
#include<conio.h>

void func(int array[])
{
array[1]=10;
}

int main()
{
int arr[5]={0,0,0,0,0};

cout<<"Before edit:"<<arr[1]<<"\n";

func(arr);

cout<<"After edit:"<<arr[1]<<"\n";


getch();
return 0;
}

H_G_G_I
پنج شنبه 16 آذر 1391, 19:08 عصر
برا متغییر گلوبال شما فقط باید اونو در ناحیه فایل تعریف کنی ! پاین اینکلود ها ! نه تو تابع .

#include<iostream.h>

int g_var1 = 90;
int g_var2 = 4544;

void func1()
{
g_var1 = 45;
}

int main()
{
func1();
g_var2 = 43;
return 0;
}