يك سوال دارم در مورد اشاره گرها در سي پلاس پلاس

شروع موضوع توسط sianoosh07 ‏27 نوامبر 2005 در انجمن برنامه‌نویسی C و هم خانواده‌هایش

  1. sianoosh07

    sianoosh07 New Member

    ارسال‌ها:
    4
    تشکر شده:
    0
    امتیاز دستاورد:
    1


    #include<iostream.h>
    #include<iomanip.h>
    #include<conio.h>
    void bublesort(int*,const int);
    main()
    {
    const int arraysize=10;
    int a[arraysize]={0};
    int i;
    cout<<"ENTER ARRAY ELEMENTS : "<<endl;
    for(int j=0;j<arraysize;j++){
    cout<<"ENTER ELEMENT "<< j+1<<" :"<<endl;
    cin>>a[j];
    }

    cout<<"THE ORIGINAL SORT OF ARRAY IS :"<<endl;
    for(i=0;i<arraysize;i++)
    cout<<setw(5)<<a;

    bublesort(a,arraysize);
    cout<<"\nTHE BUBLE SORT OF ARRAY IS :"<<endl;
    for(i=0;i<arraysize;i++)
    cout<<setw(5)<<a;

    cout<<endl;
    getch();
    return 0;
    }
    void bublesort(int *array,const int size)
    {
    void swap(int*,int*);
    for(int pass=0;pass<size-1;pass++)
    for(int j=0;j<size-1;j++)
    if(array[j]>array[j+1])
    swap(&array[j],&array[j+1]);
    }
    void swap(int*el1ptr,int*el2ptr)
    {
    int hold=*el1ptr;
    *el1ptr=*el2ptr;
    *el2ptr=hold;
    }


    سوال من اينه كه در دستور ايف در تابع بابل سورت اگر يك اشاره گر را بدون علامت ستاره به كار ببريم مگر آدرس را برنميگرداند؟ پس چرا اينجا متويات را برگردانده است؟
    ممنون ميشم اگه راهنمايي كنيد
     
    نوشته شده توسط sianoosh07 در ‏27 نوامبر 2005
  2. hrnm

    hrnm New Member

    ارسال‌ها:
    6
    تشکر شده:
    3
    امتیاز دستاورد:
    1
    دوست عزیز یک تاپیک هم بس بود اینجوری دیتابیس سایت سنگین می شه
     
    نوشته شده توسط hrnm در ‏27 نوامبر 2005
  3. sianoosh07

    sianoosh07 New Member

    ارسال‌ها:
    4
    تشکر شده:
    0
    امتیاز دستاورد:
    1
    !!

    حق با شماست شرمنده!!
     
    نوشته شده توسط sianoosh07 در ‏27 نوامبر 2005
  4. stranger_in_rain

    stranger_in_rain Member

    ارسال‌ها:
    183
    تشکر شده:
    27
    امتیاز دستاورد:
    16
    اشاره گر هنگامی که به صورت آرایه به کار میرود مقدار را بر میگرداند. به مثال زیر توجه کنید :
    کد (Text):

    [left]
    int *p;
    p=new int[n];
    p[0]=12;
    cout<<p[0];
    [/left]
     
    این مسئله دقیقا در کلیه آرایه ها یکسان است، چون همانطور که میدانیم نام آرایه خود یک Pointer میباشد. یعنی با آوردن کروشه بعد از نام Pointer آن را به صورت Array در آورده و از قوانین آن پیروی خواهد کرد.
     
    نوشته شده توسط stranger_in_rain در ‏2 دسامبر 2005

به اشتراک بگذارید