PDA

View Full Version : سوال: چه موقع از اشاره گر ها استفاده کنیم؟ (فنی)



snbb000
شنبه 16 دی 1391, 15:42 عصر
سلام
دوستان کی از اشاره گر ها استفاده کنیم بهتر هست؟
اصلا نیازی هست همیشه با اشاره گر ها کد بنویسیم؟
کدوم بهتر هست ؟ با اشاره گر ها همیشه بنویسیم و یا اینکه به صورت عادی بنویسیم و در صورت نیاز از اشاره گر ها استفاده کنیم؟

ممنون

silverfox
شنبه 16 دی 1391, 15:56 عصر
http://stackoverflow.com/questions/7058339/c-when-to-use-references-vs-pointers
"Use references when you can, and pointers when you have to." (http://stackoverflow.com/questions/7058339/c-when-to-use-references-vs-pointers)

بهروز عباسی
شنبه 16 دی 1391, 16:00 عصر
درود
شرمنده الان وقت ندارم خودم توضیح بدم اما لینک زیرو حتماً ببین.
Why use pointers? (http://stackoverflow.com/questions/162941/why-use-pointers)



موفق باشید.

lexical_error
شنبه 16 دی 1391, 16:29 عصر
سلام
هنگامی از اشاره گر استفاده میکنیم که نیاز به اشاره گر باشه یا کارایی برنامه درصورت استفاده از اشاره گر بالا بره!
همونطور که میدونید اشاره گر متغییریست که آدرس یه متغییر دیگه داخل اون ذخیره میشه،در واقع هرکجا که لازم باشه شما با آدرس حافظه کار کنی یا قصد نگه داری آدرس حافظه رو داشته باشی باید از اشاره گر استفاده کنی،چون آدرس حافظه رو نمیشه به متغییری به غیر از اشاره گر انتساب داد!
در مورد کارایی هم ، مثال پر کاربردی که میتونم بزنم هنگام استفاده از توابع هست ، برای ارسال آرگومان به توابع دو راه وجود دارد :1- ارسال با مقدار 2- ارسال با آدرس(که با اشاره گر و مرجع انجام میشه)
هنگامی که شما آرگومان رو با مقدار به تابع میفرستی یک کپی و موقعی که شی رو با تابع return میکنید یک کپی دیگه از شی ساخته میشه (با ساختن یک copy constructor در یک کلاس این مساله کاملا قابل مشاهده و بررسی است)
اما زمانی که آرگومان رو با استفاده از آدرس میفرستی ( اشاره گر یا مرجع) دیگر خبری از کپی نیست و تابع درواقع با آدرس شی ارسالی کار میکنه و در صورت نیاز شی(آدرس) رو برمیگردونه،که همین موضوع باعث کم شدن فراخوانی های متعدد کپی ساز و مخرب مربوط به اون میشه که در نتیجه این امر سرعت عملکرد و کارایی برنامه بالا میره...