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

sianoosh07

New Member


#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;
}


سوال من اينه كه در دستور ايف در تابع بابل سورت اگر يك اشاره گر را بدون علامت ستاره به كار ببريم مگر آدرس را برنميگرداند؟ پس چرا اينجا متويات را برگردانده است؟
ممنون ميشم اگه راهنمايي كنيد
 

hrnm

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

جدیدترین ارسال ها

بالا