ورود

نسخه کامل مشاهده نسخه کامل : اشاره گر ها



Lamanta
17-01-2011, 01:52
سلام من یه آموزش کلی برای اشاره گر ها می خوام 4 شنبه امتحان دارم همش اشاره گر ها رو قاطی می کنم
من زبان C می خونم و نمیدونم اصلا اشاره گر چیه و چه موقع به کار میاد اگه میشه کمکم کنید.....

Petros
17-01-2011, 05:47
اشاره گر آدرس یه خونه از حافظه رو نگه میداره. شما معمولا با متغیرها کار میکنی و برات مهم نیست که اون متغیر (که توسط سیستم عامل اتوماتیک ) کجا ذخیره میشه. اما وقتی با آدرسشون کار داری میتونی از اشاره گرها استفاده کنی.

اشاره گرها در مبحث کار با رشته کاربرد خاصی دارن. وقتی آرایه ای از Char درست میکنی (Char ch [10] d) خونه های اون آرایه میتونن کامل پر شن یا یه تعدادیش خالی بمونن. اما برای انجام کار بهینه از اشاره گر استفاده میکنی تا حافظه به اندازه طول رشته ت باشه.

اشاره گر هزینه کپی کردن مقادیر از تابع فراخوانی شده به تابه فراخوانده شده رو کاهش میده. اشاره گرها Call By Reference


تعریف اشاره گر:
int *ptr
یعنی جایی که من میخوام بهش اشاره کنم خونه ای از جنس Int هست.


ptr=&a
یعنی آدرس متغییر a را در اشاره گر Ptr بریز. الان ارتباط برقرار شده.

ptr=12*
(ستاره پی تی آر = دوازده)
یعنی اونجایی که دارم من اشاره میکنم رو 12 بزار (در اینجا به متغیر a که از نوع Int هست).



شما میتونی مقدار a رو به دو صورت چاپ کنی:
cout<<a
cout<<*ptr



آدرس a سه جور چا میشه: یکی عملگر آدرس. یکی هم ptr که تو خودش آدرس a هست.
cout<<&a
cout<<ptr
cout<<&*ptr چاپ کن آدرس اونجایی که ptr اشاره میکنه

خود ptr هم آدرس داره بیچاره: cout<<&ptr


بقیش هم بعدا. یا دوستان بگن

Petros
17-01-2011, 05:47
اشاره گر آدرس یه خونه از حافظه رو نگه میداره. شما معمولا با متغیرها کار میکنی و برات مهم نیست که اون متغیر (که توسط سیستم عامل اتوماتیک ) کجا ذخیره میشه. اما وقتی با آدرسشون کار داری میتونی از اشاره گرها استفاده کنی.

اشاره گرها در مبحث کار با رشته کاربرد خاصی دارن. وقتی آرایه ای از Char درست میکنی (Char ch [10] d) خونه های اون آرایه میتونن کامل پر شن یا یه تعدادیش خالی بمونن. اما برای انجام کار بهینه از اشاره گر استفاده میکنی تا حافظه به اندازه طول رشته ت باشه.

اشاره گر هزینه کپی کردن مقادیر از تابع فراخوانی شده به تابه فراخوانده شده رو کاهش میده. اشاره گرها Call By Reference


تعریف اشاره گر:
int *ptr
یعنی جایی که من میخوام بهش اشاره کنم خونه ای از جنس Int هست.


ptr=&a
یعنی آدرس متغییر a را در اشاره گر Ptr بریز. الان ارتباط برقرار شده.

ptr=12*
(ستاره پی تی آر = دوازده)
یعنی اونجایی که دارم من اشاره میکنم رو 12 بزار (در اینجا به متغیر a که از نوع Int هست).



شما میتونی مقدار a رو به دو صورت چاپ کنی:
cout<<a
cout<<*ptr



آدرس a سه جور چا میشه: یکی عملگر آدرس. یکی هم ptr که تو خودش آدرس a هست.
cout<<&a
cout<<ptr
cout<<&*ptr چاپ کن آدرس اونجایی که ptr اشاره میکنه

خود ptr هم آدرس داره بیچاره: cout<<&ptr


بقیش هم بعدا. یا دوستان بگن