نمایش نتایج 1 تا 26 از 26

نام تاپیک: دلیل پا فشاری برای استفاده از اشاره گر زمانی که می توانیم از یک متغییر استاتیک استفاده کنیم چیست؟

  1. #1
    منتظر تایید آدرس ایمیل
    تاریخ عضویت
    شهریور 1390
    پست
    593

    Question دلیل پا فشاری برای استفاده از اشاره گر زمانی که می توانیم از یک متغییر استاتیک استفاده کنیم چیست؟

    سلام
    یک سوال برای من پیش اومده که چرا وقتی متغییر استاتیک میشه تعریف کرد از اشاره گر استفاده کنیم؟
    Public static bool psbool1;

    شاید هم اشاره گر برتری خاصی نسبت به این روش دارد!
    کلاً اون خدا بیامرز اشاره گر رو برای چی گذاشت روی ++C
    مثلاً توی جاوا و بیسیک نیست (البته تا اون جایی که سواد بنده هست) چه اتفاقی افتاده
    ممنون میشم راهنمایی کنید
    آخرین ویرایش به وسیله mohammadriano : پنج شنبه 16 شهریور 1391 در 08:03 صبح دلیل: ;

  2. #2
    کاربر دائمی آواتار hadi0x7c7
    تاریخ عضویت
    فروردین 1391
    محل زندگی
    تهران
    سن
    32
    پست
    497

    نقل قول: دلیل پا فشاری برای استفاده از اشاره گر زمانی که می توانیم از یک متغییر استاتیک استفاده کنیم

    وقتی شما از جایی غیر از stack بخوای حافظه بگیری مثل heap شما باید از Dynamic memory allocation استفاده کنی که اونم تنها راهش استفاده از pointer هستش. اشاره گر بیشتر از زبان سی شروع شد نه cpp. زبان هایی مثل جاوا تمام object هایی که شما میسازی توی heap ذخیره میشن و به طور ضمنی شما داری از اشاره گر استفاده میکنی به خاطر همینه که میگن شیء ها در جاواpass by refrence هستند در نتیجه از اشاره گر استفاده میشه در پشت پرده.

  3. #3
    منتظر تایید آدرس ایمیل
    تاریخ عضویت
    شهریور 1390
    پست
    593

    نقل قول: دلیل پا فشاری برای استفاده از اشاره گر زمانی که می توانیم از یک متغییر استاتیک استفاده کنیم

    نقل قول نوشته شده توسط hadi0x7c7 مشاهده تاپیک
    وقتی شما از جایی غیر از stack بخوای حافظه بگیری مثل heap شما باید از Dynamic memory allocation استفاده کنی که اونم تنها راهش استفاده از pointer هستش. اشاره گر بیشتر از زبان سی شروع شد نه cpp. زبان هایی مثل جاوا تمام object هایی که شما میسازی توی heap ذخیره میشن و به طور ضمنی شما داری از اشاره گر استفاده میکنی به خاطر همینه که میگن شیء ها در جاواpass by refrence هستند در نتیجه از اشاره گر استفاده میشه در پشت پرده.
    !!!!!!!!!!
    a.jpg

  4. #4

    نقل قول: دلیل پا فشاری برای استفاده از اشاره گر زمانی که می توانیم از یک متغییر استاتیک استفاده کنیم

    اصلا اشاره گر‌ها هیچ ربطی به متغیر استاتیک ندارند و کلا خیلی‌ باهم تفاوت دارن.این ۲ تا رو اصلا باهم قاطی‌ نکن.

  5. #5
    منتظر تایید آدرس ایمیل
    تاریخ عضویت
    شهریور 1390
    پست
    593

    نقل قول: دلیل پا فشاری برای استفاده از اشاره گر زمانی که می توانیم از یک متغییر استاتیک استفاده کنیم

    نقل قول نوشته شده توسط soorena مشاهده تاپیک
    اصلا اشاره گر‌ها هیچ ربطی به متغیر استاتیک ندارند و کلا خیلی‌ باهم تفاوت دارن.این ۲ تا رو اصلا باهم قاطی‌ نکن.
    البته بنده فکر می کنم اشاره گر رو به این خاطر استفاده می کنند↓
    در توابع به دلیل عدم بازگشت بیش از یک مقدار بازگشتی از اشاره گر استفاده می شود.
    پس با این تفاسیر اگر شما نمونه برنامه ای رو که برنامه نویس ملزم به استفاده از اشاره گر هست رو بنویسید ممنون میشم.

  6. #6

    نقل قول: دلیل پا فشاری برای استفاده از اشاره گر زمانی که می توانیم از یک متغییر استاتیک استفاده کنیم

    استفاده‌های مهم اشاره گر در cpp :

    ۱.ارسال پارامتر به تابع با استفاده از اشاره گر(البته این کار رو با reference هم می‌شه انجام داد و بهتره با اون انجام بشه ولی‌ اگر پارامتر یک array باشه شما عملا دارین اشاره گر می‌فرستین.)

    ۲.چند ریختی (که دیگه حتما اهمیت اشاره گر تو این مبحث برای همه روشنه)

    ۳.تخصیص حافظه ۱ بعدی به صورت پویا

    ۴.تخصیص حفظ ۲ بعدی به صورت پویا(این ۲ تا باهم فرق داره)

    ۵.بازگشت از تابع(که یک استفاده رایج از اشاره گر هستش)

    ۶.ایجاد عملیات زنجیری در کلاس ها(مخصوصا در تعریف مجدد عملگر(این رو هم که همهٔ دوستان استدان همون this* هستش) )

    ۷.استفاده از درخت ، لیست پیوندی و ساختمان داده‌های دیگر.

  7. #7
    کاربر دائمی آواتار hadi0x7c7
    تاریخ عضویت
    فروردین 1391
    محل زندگی
    تهران
    سن
    32
    پست
    497

    نقل قول: دلیل پا فشاری برای استفاده از اشاره گر زمانی که می توانیم از یک متغییر استاتیک استفاده کنیم

    #include <iostream>
    using namespace std;

    void swap(int* a, int* b)
    {
    int t = *a;
    *a = *b;
    *b = t;
    }

    void swap2(int a, int b)
    {
    int t = a;
    a = b;
    b = a;
    }


    int main()
    {
    int a, b;
    a = 19;
    b = -12;

    cout << a << ' ' << b << endl;
    swap(&a, &b);
    cout << a << ' ' << b << endl;
    swap2(a, b); // No change :(
    cout << a << ' ' << b << endl;
    system("pause");
    }

  8. #8
    منتظر تایید آدرس ایمیل
    تاریخ عضویت
    شهریور 1390
    پست
    593

    نقل قول: دلیل پا فشاری برای استفاده از اشاره گر زمانی که می توانیم از یک متغییر استاتیک استفاده کنیم

    نقل قول نوشته شده توسط hadi0x7c7 مشاهده تاپیک
    #include <iostream>
    using namespace std;

    void swap(int* a, int* b)
    {
    int t = *a;
    *a = *b;
    *b = t;
    }

    void swap2(int a, int b)
    {
    int t = a;
    a = b;
    b = a;
    }


    int main()
    {
    int a, b;
    a = 19;
    b = -12;

    cout << a << ' ' << b << endl;
    swap(&a, &b);
    cout << a << ' ' << b << endl;
    swap2(a, b); // No change :(
    cout << a << ' ' << b << endl;
    system("pause");
    }
    !!!!!!!!!!
    دلیل پا فشاری برای استفاده از اشاره گر زمانی که می توانیم از یک متغییر استاتیک استفاده کنیم.

  9. #9
    منتظر تایید آدرس ایمیل
    تاریخ عضویت
    شهریور 1390
    پست
    593

    نقل قول: دلیل پا فشاری برای استفاده از اشاره گر زمانی که می توانیم از یک متغییر استاتیک استفاده کنیم

    نقل قول نوشته شده توسط soorena مشاهده تاپیک
    استفاده‌های مهم اشاره گر در cpp :

    ۱.ارسال پارامتر به تابع با استفاده از اشاره گر(البته این کار رو با reference هم می‌شه انجام داد و بهتره با اون انجام بشه ولی‌ اگر پارامتر یک array باشه شما عملا دارین اشاره گر می‌فرستین.)

    ۲.چند ریختی (که دیگه حتما اهمیت اشاره گر تو این مبحث برای همه روشنه)

    ۳.تخصیص حافظه ۱ بعدی به صورت پویا

    ۴.تخصیص حفظ ۲ بعدی به صورت پویا(این ۲ تا باهم فرق داره)

    ۵.بازگشت از تابع(که یک استفاده رایج از اشاره گر هستش)

    ۶.ایجاد عملیات زنجیری در کلاس ها(مخصوصا در تعریف مجدد عملگر(این رو هم که همهٔ دوستان استدان همون this* هستش) )

    ۷.استفاده از درخت ، لیست پیوندی و ساختمان داده‌های دیگر.
    لطفاً نسبت به سوال پاسخ دهید.
    دلیل پا فشاری برای استفاده از اشاره گر زمانی که می توانیم از یک متغییر استاتیک استفاده کنیم.
    برنامه ای رو بنویسید که فقط با اشاره گر قادر به نوشتن آن باشیم.

  10. #10
    منتظر تایید آدرس ایمیل
    تاریخ عضویت
    شهریور 1390
    پست
    593

    نقل قول: دلیل پا فشاری برای استفاده از اشاره گر زمانی که می توانیم از یک متغییر استاتیک استفاده کنیم

    اصلا به کار بردن اشاره گر در کدهای شما چه دلیلی داره
    در ضمن بنده متوجه نشدم منظور شما از این کد چی بود!

    #include "stdafx.h"
    #include "iostream.h"
    #include "conio.h"

    void swap(int *a, int *b)
    {
    int t = *a;
    *a = *b;
    *b = t;
    }

    void swap2(int a, int b)
    {
    int t = a;
    a = b;
    b = t;
    }

    int main(int argc, char* argv[])
    {
    int a, b;
    a = 19;
    b = -12;

    cout<<a<<" "<<b<<endl;
    swap(&a, &b);
    cout<<a<<" "<<b<<endl;
    swap2(a, b);
    cout<<a<<" "<<b<<endl;
    getch();
    return 0;
    }

    این کدهای شما↑
    این هم خروجی↓
    ds.jpg
    !!!!!!!!

  11. #11
    کاربر دائمی آواتار hadi0x7c7
    تاریخ عضویت
    فروردین 1391
    محل زندگی
    تهران
    سن
    32
    پست
    497

    نقل قول: دلیل پا فشاری برای استفاده از اشاره گر زمانی که می توانیم از یک متغییر استاتیک استفاده کنیم

    شما مشکلت فقط با return بیش از یک مقداره؟ با استاتیک کارت میشه با اشاره گر هم میشه بستگی به خودت داره وسسلام !

  12. #12
    کاربر دائمی آواتار amir.bakhtiari
    تاریخ عضویت
    بهمن 1389
    محل زندگی
    کرج
    پست
    161

    نقل قول: دلیل پا فشاری برای استفاده از اشاره گر زمانی که می توانیم از یک متغییر استاتیک استفاده کنیم

    سلام

    دلیل پا فشاری برای استفاده از اشاره گر زمانی که می توانیم از یک متغییر استاتیک استفاده کنیم
    میتونید یه مثل بزنید که بجای استفاده از اشاره گر از یک متغییر استاتیک استفاده شده باشه؟؟؟

  13. #13
    کاربر دائمی آواتار fjm11100
    تاریخ عضویت
    خرداد 1387
    محل زندگی
    تهران
    سن
    43
    پست
    658

    نقل قول: دلیل پا فشاری برای استفاده از اشاره گر زمانی که می توانیم از یک متغییر استاتیک استفاده کنیم

    ضمنا
    کلاً اون خدا بیامرز اشاره گر رو برای چی گذاشت روی ++C
    اون خدابیامرز ریچی C را ساخت و سازنده C++‎ هنوز خدابیامرز نشده بدبخت

  14. #14

    نقل قول: دلیل پا فشاری برای استفاده از اشاره گر زمانی که می توانیم از یک متغییر استاتیک استفاده کنیم

    جناب آقای mohammadriano:
    دوستان فرمودند این دو مبحث ربطی به هم نداره و شما همچنان در تمام پست‌ها بدون عنایت با پاسخ‌ها سوال خودتون رو کپی می‌کنید. از همین رو من هم مجدداً خدمت شما عرض می‌کنم اشاره‌گر و متغیر استاتیک *هیچ ربطی* به هم ندارند.

    این کدهای شما↑
    این هم خروجی↓
    نویسنده کد قصد داشت ذهن شما رو به این سمت سوق بده که اگر اشاره‌گرها چنین قدرتی نداشتند خروجی طور دیگری بود!

    حالا برای اینکه بحث فنی‌تر از اینی که هست بشه لطفاً به سوال پست ۱۲ جواب بده.

  15. #15
    منتظر تایید آدرس ایمیل
    تاریخ عضویت
    شهریور 1390
    پست
    593

    نقل قول: دلیل پا فشاری برای استفاده از اشاره گر زمانی که می توانیم از یک متغییر استاتیک استفاده کنیم

    با تشکر از شما
    حالا برای اینکه بحث فنی‌تر از اینی که هست بشه لطفاً به سوال پست ۱۲ جواب بده.
    ابتدا شما برنامه خودتون رو با اشاره گر بنویسید.
    سپس همه چیز مشخص خواهد شد.

    در ضمن مثلاً یک تابع رو بنویسید که نیاز به اشاره گر در آن احساس شود.
    نمونه تابع دوستمون اصلا وجود اشاره گر !؟

    void swap(int *a, int *b)
    {
    int t = *a;
    *a = *b;
    *b = t;
    }

  16. #16

    نقل قول: دلیل پا فشاری برای استفاده از اشاره گر زمانی که می توانیم از یک متغییر استاتیک استفاده کنیم

    نقل قول نوشته شده توسط mohammadriano مشاهده تاپیک
    سلام
    یک سوال برای من پیش اومده که چرا وقتی متغییر استاتیک میشه تعریف کرد از اشاره گر استفاده کنیم؟
    Public static bool psbool1;

    شاید هم اشاره گر برتری خاصی نسبت به این روش دارد!
    کلاً اون خدا بیامرز اشاره گر رو برای چی گذاشت روی ++C
    مثلاً توی جاوا و بیسیک نیست (البته تا اون جایی که سواد بنده هست) چه اتفاقی افتاده
    ممنون میشم راهنمایی کنید
    مشکل شما اینجا است که مفهوم اشاره گر یا متغیر استاتیک رو درست متوجه نشده اید، وگرنه اصلا ایندو تا با هم قابل مقایسه نیستند
    که بشه یا نشه بجای هم بکارشون برد. اشاره گر یک گروه از انواع داده ای است، انواع داده ای که آدرس حافظه یک داده را در خود ذخیره می کند.
    اشاره گر می تونه صرفا با یک مقدار عددی ناقابل آدرس یک حافظه خیلی بزرگ و حجیم رو منتقل کنه و به سایر بخش ها قابلیت دسترسی
    به اون حافظه رو بده. جایگزینی هم نداره، متغیر های آرایه ای، اشیاء و رشته ها همه شان اشاره گر دارند. خود اسم یک آرایه به تنهایی اشاره گر است.

    در مقابل static اصلا نوع داده نیست، متغیر static خودش می تونه اشاره گر باشه. متغیر ها بصورت معمول هر زمانی که اجرای برنامه به بلوک
    تعریف شون میرسه ایجاد می شوند و زمانی که از بلوک خارج میشه نابود می شوند و مقدار قبلی شون از دست میره. اما متغیر static از هر نوعی
    که باشه، اشاره گر باشه یا نباشه، موقع شروع برنامه ایجاد میشه و تا زمانی که برنامه در حال اجرا است مقدارش حفظ میشه. یعنی ورود و خروج از
    بلوکی که داخلش تعریف شده باعث نابود شدن مقدار قبلی اش نمیشه. به همین جهت جاهایی که قراره یک مقداری مشترکا داخل بلوک
    مورد استفاده قرار بگیره و در دفعات بعدی اجرای اون بلوک همون مقدار حفظ بشه متغیر رو static تعریف می کنند.


    اگر اشاره گر رو به عنوان مقداری که به یک آدرس حافظه اشاره می کند در نظر بگیرید، در جاوا اشاره گر صریحا نیست
    چون ساختارش طوری نیست که به برنامه نویس اجازه دسترسی مستقیم به حافظه رو بده.
    در بیسیک هم اگر منظورتون ویژوال بیسیک کلاسیک ئه، هست. نمیشه زبانی با API ویندوز بتونه در ارتباط باشه و اشاره گر
    نداشته باشه، فرضا ویژوال بیسیک VarPtr و StrPtr داره. می تونه مقدار یک اشاره گر یا آدرس هر داده ای رو در هر متغیر عددی ذخیره کنه
    و به توابع API ارسال کنه.

  17. #17
    منتظر تایید آدرس ایمیل
    تاریخ عضویت
    شهریور 1390
    پست
    593

    نقل قول: دلیل پا فشاری برای استفاده از اشاره گر زمانی که می توانیم از یک متغییر استاتیک استفاده کنیم

    خیلی ممنون دوست عزیز the king
    میشه یک برنامه بنویسید که صرفاً فقط با اشاره گر بشه نوشتش!
    بهتر میگم ، صورت مسئله ای رو طرح کنید که تنها با نوشتن اشاره گر قابل انجام باشد.


  18. #18
    کاربر دائمی آواتار FastCode
    تاریخ عضویت
    تیر 1388
    محل زندگی
    /dev/null
    پست
    3,486

    نقل قول: دلیل پا فشاری برای استفاده از اشاره گر زمانی که می توانیم از یک متغییر استاتیک استفاده کنیم

    البته بنده فکر می کنم اشاره گر رو به این خاطر استفاده می کنند↓
    در توابع به دلیل عدم بازگشت بیش از یک مقدار بازگشتی از اشاره گر استفاده می شود.
    پس با این تفاسیر اگر شما نمونه برنامه ای رو که برنامه نویس ملزم به استفاده از اشاره گر هست رو بنویسید ممنون میشم.
    من فکر کردم این یکی جک بود
    پس access modifier ه out برای چیه؟

    سوال ه آقای مصافی به نظر من هم جوک نیست.جواب بده.
    جواب ه جوابت خیلی باحاله

  19. #19
    منتظر تایید آدرس ایمیل
    تاریخ عضویت
    شهریور 1390
    پست
    593

    نقل قول: دلیل پا فشاری برای استفاده از اشاره گر زمانی که می توانیم از یک متغییر استاتیک استفاده کنیم

    نقل قول نوشته شده توسط FastCode مشاهده تاپیک
    من فکر کردم این یکی جک بود
    پس access modifier ه out برای چیه؟
    سوال ه آقای مصافی به نظر من هم جوک نیست.جواب بده.
    جواب ه جوابت خیلی باحاله
    منظورتون ref و out هست؟
    FastCode عزیز شما جواب این سوال رو بده
    نقل قول نوشته شده توسط mohammadriano مشاهده تاپیک
    خیلی ممنون دوست عزیز the king
    میشه یک برنامه بنویسید که صرفاً فقط با اشاره گر بشه نوشتش!
    بهتر میگم ، صورت مسئله ای رو طرح کنید که تنها با نوشتن اشاره گر قابل انجام باشد.

  20. #20
    کاربر دائمی آواتار hadi0x7c7
    تاریخ عضویت
    فروردین 1391
    محل زندگی
    تهران
    سن
    32
    پست
    497

    نقل قول: دلیل پا فشاری برای استفاده از اشاره گر زمانی که می توانیم از یک متغییر استاتیک استفاده کنیم

    نقل قول نوشته شده توسط mohammadriano مشاهده تاپیک
    میشه یک برنامه بنویسید که صرفاً فقط با اشاره گر بشه نوشتش!
    بهتر میگم ، صورت مسئله ای رو طرح کنید که تنها با نوشتن اشاره گر قابل انجام باشد.
    [/SIZE]
    گرفتی مارو داداش؟ خیلی عذر میخوام ولی شما با pass by value و pass by reference اشنا هستی؟

    برای درک بهتر اشاره گر ها شما رو به کتاب The C programming language ارجاع میدم فصل 5. که اشاره گر ها رو از زبان سازنده زبان یاد بگیری.

  21. #21

    نقل قول: دلیل پا فشاری برای استفاده از اشاره گر زمانی که می توانیم از یک متغییر استاتیک استفاده کنیم

    نقل قول نوشته شده توسط mohammadriano مشاهده تاپیک
    خیلی ممنون دوست عزیز the king
    میشه یک برنامه بنویسید که صرفاً فقط با اشاره گر بشه نوشتش!
    بهتر میگم ، صورت مسئله ای رو طرح کنید که تنها با نوشتن اشاره گر قابل انجام باشد.

    در مثال زیر مسیر های داخل متغیر محیطی Path سیستم عامل بصورت سطر های متوالی نمایش داده میشه :

    #include <stdio.h>
    #include <string.h>
    #include <iostream.h>

    using namespace std;

    int main()
    {
    char *path = getenv("PATH");
    char *p = strtok (path, ";");
    int i = 0;
    while (p)
    {
    cout << "Path [" << i << "] = " << p << endl;
    p = strtok(0, ";");
    i++;
    }
    return 0;
    }

  22. #22
    منتظر تایید آدرس ایمیل
    تاریخ عضویت
    شهریور 1390
    پست
    593

    نقل قول: دلیل پا فشاری برای استفاده از اشاره گر زمانی که می توانیم از یک متغییر استاتیک استفاده کنیم

    نقل قول نوشته شده توسط the king مشاهده تاپیک
    در مثال زیر مسیر های داخل متغیر محیطی Path سیستم عامل بصورت سطر های متوالی نمایش داده میشه :

    #include <stdio.h>
    #include <string.h>
    #include <iostream.h>

    using namespace std;

    int main()
    {
    char *path = getenv("PATH");
    char *p = strtok (path, ";");
    int i = 0;
    while (p)
    {
    cout << "Path [" << i << "] = " << p << endl;
    p = strtok(0, ";");
    i++;
    }
    return 0;
    }
    عجب
    !!!!!!!!!!
    بازگشتی توابع زیر↓ که شما نوشته اید & (آدرس) هست.
    معلوم هست که نمیشه بدون اشاره گر نوشتش

    char *path = getenv("PATH");
    char *p = strtok (path, ";");

  23. #23

    نقل قول: دلیل پا فشاری برای استفاده از اشاره گر زمانی که می توانیم از یک متغییر استاتیک استفاده کنیم

    نقل قول نوشته شده توسط mohammadriano مشاهده تاپیک
    عجب
    !!!!!!!!!!
    بازگشتی توابع زیر↓ که شما نوشته اید & (آدرس) هست.
    معلوم هست که نمیشه بدون اشاره گر نوشتش

    char *path = getenv("PATH");
    char *p = strtok (path, ";");
    خدا رو شکر که معلوم شد که مشکل شما با اشاره گر چیه، شما تصور می کنید که توابعی مثل getenv و strtok رو می شد بدون اشاره گر پیاده سازی کرد
    اما سازندگان این توابع اصرار داشته اند که از اشاره گر استفاده کنند. خیر، چنین نیست.

    getenv باید یک رشته که در ابتدا طول اش معلوم نیست رو بصورت پویا ایجاد کنه و به عنوان خروجی برگردونه. برای ساختن حافظه پویا یا باید از
    تابع malloc استفاده بشه که یادگار زبان C است و یا کلمه کلیدی new که هر دو شون هم اشاره گر بر می گردونند. طبیعتا شما هم مثل سازندگان آن
    توابع برای این مساله راه حل دیگری که نیاز به اشاره گر نداشته باشد نخواهید داشت.

    strtok هم باید یک رشته را پردازش کند و در دفعات مکرر موقعیت یک تکه رشته را بر گرداند. برای تعیین کردن موقعیت شروع تکه رشته ها
    می توان بجای اشاره گر از اندیس کاراکتر (مثلا عدد 0) استفاده کرد، اما اگر بخواهید این اندیس را به شروع یک رشته تبدیل کنید
    باز بدون اشاره گر نمی توانید چنین کاری را انجام دهید.

    دوستانی که در اینجا برای شما موارد استفاده اشاره گر رو توضیح دادند و مثال زدند هیچکدوم تعصبی روی اشاره گر ندارند، قطعا اگر
    توابعی مشابه مثال های زده شده رو بدون اشاره گر بنویسید از شما ممنون خواهند شد و استفاده خواهند کرد.

  24. #24
    منتظر تایید آدرس ایمیل
    تاریخ عضویت
    شهریور 1390
    پست
    593

    نقل قول: دلیل پا فشاری برای استفاده از اشاره گر زمانی که می توانیم از یک متغییر استاتیک استفاده کنیم

    نقل قول نوشته شده توسط the king مشاهده تاپیک
    getenv باید یک رشته که در ابتدا طول اش معلوم نیست رو بصورت پویا ایجاد کنه و به عنوان خروجی برگردونه. برای ساختن حافظه پویا یا باید از
    تابع malloc استفاده بشه که یادگار زبان C است و یا کلمه کلیدی new که هر دو شون هم اشاره گر بر می گردونند. طبیعتا شما هم مثل سازندگان آن
    توابع برای این مساله راه حل دیگری که نیاز به اشاره گر نداشته باشد نخواهید داشت.
    strtok هم باید یک رشته را پردازش کند و در دفعات مکرر موقعیت یک تکه رشته را بر گرداند. برای تعیین کردن موقعیت شروع تکه رشته ها
    می توان بجای اشاره گر از اندیس کاراکتر (مثلا عدد 0) استفاده کرد، اما اگر بخواهید این اندیس را به شروع یک رشته تبدیل کنید
    باز بدون اشاره گر نمی توانید چنین کاری را انجام دهید.
    با تشکر از شما
    بنده از روی تعصب به تاپیک ایجاد نکردم
    <تازه بنده فکر می کنم متغیر static هم شاید به نوعی با اشاره گر پیاده سازی بشه(البته بنده به طور تخصصی هیچ زبانی رو کامل نمی دونم من این جوری فکر می کنم)
    در ضمن بنده با مطالعاتی که روی #C داشتم به این نتیجه رسیدم که استفاده از اشاره گر کلاً کار معقولی نیست>
    به هر حال
    بنده نمی تونم به محتویات دو تابع دسترسی پیدا کنم
    اگه ممکن هست تابع رو به صورت کامل بنویسید بنویسید.

  25. #25

    نقل قول: دلیل پا فشاری برای استفاده از اشاره گر زمانی که می توانیم از یک متغییر استاتیک استفاده کنیم

    نقل قول نوشته شده توسط mohammadriano مشاهده تاپیک
    با تشکر از شما
    بنده از روی تعصب به تاپیک ایجاد نکردم
    <تازه بنده فکر می کنم متغیر static هم شاید به نوعی با اشاره گر پیاده سازی بشه(البته بنده به طور تخصصی هیچ زبانی رو کامل نمی دونم من این جوری فکر می کنم)
    در ضمن بنده با مطالعاتی که روی #C داشتم به این نتیجه رسیدم که استفاده از اشاره گر کلاً کار معقولی نیست>
    به هر حال
    بنده نمی تونم به محتویات دو تابع دسترسی پیدا کنم
    اگه ممکن هست تابع رو به صورت کامل بنویسید بنویسید.
    شما تابع getenv رو اینطوری فرض کنید، یک رشته با طول نامشخص رو داخلش حروف الفبا هست بر می گردونه :

    char* getenv()
    {
    int n;
    char* path = new char[n + 1];
    for (int i = 0; i < n; i++)
    path[i] = 65 + i % 26;
    path[n] = 0;
    return path;
    }


    اینم مثال اش :

    char* path = getenv();


    همچین تابعی رو نمیشه بدون اشاره گر پیاده سازی کرد.

    در ضمن قطعا در مطالعات تان روی #C با object آشنا شده اید، این object همان نامعقولی است که ازش فرار می کنید و کل فضای
    #C و Net. را فرا گرفته.

  26. #26

    نقل قول: دلیل پا فشاری برای استفاده از اشاره گر زمانی که می توانیم از یک متغییر استاتیک استفاده کنیم

    سلام.این سئوالت نشون میده معنای اشاره گر رو درست متوجه نشدی.واست یک قصه میگم.یک هواپیمای مسافربری بود که ظرفیت 500مسافرداشت.خوب این مسافرا نیاز به سرویس بهداشتی دارند.حتما هم درطول یک سفر هرمسافر یکبار رو نیاز به اون داره .خوب میتونستند به ازای هرمسافر یک دونه سرویس بهداشتی بسازند که میشد 500 سرویس بهداشتی‎.فقط هواپیما یک چند صد تنی سنگین تر میشد و بزرگتر.این بدیهی بود که مهندسها بگن در آن واحد که هر500 مسافر نمیرن دستشوئی.ما یک یا نهایتادو سه تا دونه سرویس بهداشتی میسازیم و یک مهموندار هم میزاریم که آدرس این سرویس رو به مسافرها بده.متوجه شدی.شما متغیر مسافر رو که میتونه 500مقدار مختلف داشته باشه با اشاره گرمهموندار که آدرس سرویس بهداشتی رو نشون میده و فقط یک نفره یکی گرفتی درحالی که اینها دو موجودیت کاملا مجزا هستندوحساب کمبود واحدهای حافظه که همون سرویسهای بهداشتی باشندرو نکردی.میتونی همون کار اول را انجام بدی اما باید یک هواپیما با 500سرویس بهداشتی با وزن واندازه ناو هواپیمابر وینسنز بسازی تا فقط وفقط یک مهموندار راهنما به خدمه هواپیما اضافه نکنی یعنی دقیقا یک ابرکامپیوتر.اما سی شارپ وجاوا.اونها هم تماما ازاشاره گر استفاده میکنن اما خود کامپایلر وظیفه سنگین مدیریت اشاره گرها رو در پشت پرده به عهده داره.چون میخواستند یادگیری این زبانها ساده باشه چون مبحث اشاره گرها پیچیده ترین مبحث سی وسی پلاس پلاس بوده اما به بهای نابود کردن نیمی از قدرت فوق العاده ای که سی و سی پلاس پلاس دارند.وقتی میگن سی و سی پلاس پلاس در دسترسی به توابع سطح پایین سیستم همچون اسمبلی قدرتمندند منظورشون دقیقا استفاده ازهمین اشاره گرهاست.اصلا یکی ازدلایلی که اکثرسیستم های عامل رو با این دو زبان ومخصوصا هیولای هرچند نه چندان زیبا اما به غایت قدرتمند سی پلاس پلاس مینویسند همینه.با عرض معذرت وموفق باشی.

تاپیک های مشابه

  1. سوال: دلیل قانع کننده برای استفاده از Property؟
    نوشته شده توسط modirmasool در بخش VB.NET
    پاسخ: 8
    آخرین پست: شنبه 13 شهریور 1389, 12:04 عصر
  2. استفاده از اشاره گرها در Object Pascal (دلفی)
    نوشته شده توسط RezaBS در بخش مقالات مرتبط با Delphi/Win32
    پاسخ: 2
    آخرین پست: چهارشنبه 03 تیر 1388, 19:37 عصر
  3. استفاده از اشاره گر
    نوشته شده توسط amir_civil در بخش برنامه نویسی با زبان C و ++C
    پاسخ: 5
    آخرین پست: شنبه 19 آبان 1386, 16:36 عصر
  4. ایجاد یک درخت کامل با استفاده از اشاره گرها
    نوشته شده توسط احمد کرک در بخش الگوریتم، کامپایلر، هوش مصنوعی و ساختمان داده ها
    پاسخ: 4
    آخرین پست: دوشنبه 01 خرداد 1385, 15:06 عصر
  5. نحوه استفاده از اشاره گر
    نوشته شده توسط idic1 در بخش برنامه نویسی در Delphi
    پاسخ: 2
    آخرین پست: دوشنبه 22 فروردین 1384, 09:26 صبح

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •