بسم الله الرحمن الرحيم قرأت ورأيت كثيرا ممن يعتبر ان المصفوفات هي مؤشرات .. او ان المصفوفة بحد ذاتها هي مؤشر .. تقنيا .. هذا الامر خاطئ ..لايوجد شئ في عالم البرمجة اسمه المصفوفة هي مؤشر .. اذا ماهي المصفوفة ..؟؟ المصفوفة هي اي متغير في لغة السي او السي ++ .. ميزتها التي تفرق انها متغير ولكن تحت اسمها عدة متغيرات .. لنأخذ المثال التالي ..
int var;cout<<&var;
int var;cout<<var;
int* ptr=&intvar;
code]int arr[3]={3,4,5};cout<<arr;
&arr[0]
cout << &arr
إقتباس
int arr[3]={3,4,5};cout<<"First element of the array: "<<arr[0] <<endl;cout<<"Address of the first element: "<<&arr[0] <<endl;cout<<"Address of the array: "<<arr <<endl;cout<<"So what is this? "<<&arr <<endl;
int arr[3]={3,4,5};cout<<"Address of the first element: "<<&arr[0]+1 <<endl;cout<<"Address of the array: "<<arr +1<<endl;cout<<"So what is this? "<<&arr +1<<endl;
int arr[3]={1,3,4}; //Declares an array with 3 elementsint * ptr=arr; //Initialize pointer ptr with the address of array arr cout<<*(arr+2)<<endl;cout<<*(ptr+2)<<endl;/* output */44
int arr[3]={1,3,4}; //Declares an array with 3 elementsint * ptr=arr; //Initialize pointer ptr with the address of array arrcout<<arr[2]<<endl;cout<<ptr[2]<<endl;/* output */44
int *ptr=new int[3]; ptr[0]=12;ptr[2]=3;cout<<ptr[2];/* output */3
int ar[2]={8,2};int var1=66;int var2=111;int* ptarray[5];ptarray[0]=ar;ptarray[1]=&ar[1]; //Address of second element of array arptarray[2]=&var1;ptarray[3]=&var2;ptarray[4]=&ar[0];// To keep code small I use a loopfor(int i=0;i<5;i++) cout<<*(ptarray[i])<<endl;/* output */82661118
void test(char v[]);int main(){ char a[53]; //a="If a is an array, this line should generate an error"; test(pta); return 0;}void test(char v[]){ v="If v is an array, this line should generate an error"; cout<<v<<endl;}
int x[4]= { 1,2,3,4};cout << x[0]+1;