عنوان الموضوع بالإنجليزية سيعطى المعنى بشكل أفضل : Array view into array.
يمكنك تخيل الأمر كالتالي أنت تقف فى غرفه و هى تحتوى على العديد من الأشياء و فى يديك كاميرا تنظر من خلالها لذا فى أى لحظه ما تراه من خلال الكاميرا هو جزء من الواقع و إذا حدث ان قمت و انت تمسك الكاميرا بتغيير اى شئ فستراه من خلال الكاميرا و ايضا سيتغير داخل الغرفه و بالمثل إن تم تغيير شئ داخل الغرفه فستراه عبر الكاميرا أيضا.
فى الكود التالي:
int arr[] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};نوع المصفوفة arr هو [int[10 و المطلوب هو وجود المصفوفة arr2 بحيث يكون نوعها [int[5 و أول عنصر بها هو العنصر رقم 3 بالمصفوفة arr - و قيمته 2 - بحيث عند تنفيذ الكود التالي:
const int arr2_len = sizeof(arr2)/sizeof(int);for(int i=0; i<arr2_len; ++i) arr2 += 5;
و طباعة عناصر المصفوفة arr قبل و بعد تنفيذ الكود السابق بإستخدام الكود التالي:
cout << "arr[0]=" << arr[0]for(int i=1; i<10; ++i) cout << ", arr[" << 1 << "]=" << arr;cout << endl;
تكون النتيجة:
arr[0]=0, arr[1]=1, arr[2]=2, arr[3]=3, arr[4]=4, arr[5]=5, arr[6]=6, arr[7]=7, arr[8]=8, arr[9]=9 arr[0]=0, arr[1]=1, arr[2]=7, arr[3]=8, arr[4]=9, arr[5]=10, arr[6]=11, arr[7]=7, arr[8]=8, arr[9]=9
أيضا عند إستخدام الكود التالي:
cout << "arr2[0]=" << arr2[0];for(int i=1; i<arr2_len; i++) cout << ", arr2[" << i << "]=" << arr2;cout << endl;
يتم طباعة:
arr2[0]=7, arr2[1]=8, arr2[2]=9, arr2[3]=10, arr2[4]=11
يحتاج السؤال إلى معرفة أساسيات اللغه جيدا (المؤشرات و المراجع و المصفوفات) فإن لم تستطع إجابة هذا السؤال على الأقل لنفسك فعلم ان مستواك ضعيف فى أساسيات اللغه أو أنك لم تركز عليها بالقدر الذى كانت تحتاجه.
و الله ولي التوفيق
