السلام عليكم و رحمة الله و بركاته
عندما تقرأ عنوان الموضوع قد تتفاجأ ! وقد يظن البعض أنني أُعطي للمسألة حجما أكبر من حجمها .. ولكن دعني أقول لك أن هذه مسألة حساسة جدا .. فإذا كان المترجم Dev يتعامل مع المصفوفات استاتيكية و كأنها ديناميكية ! فقد يقول البعض .. لا حاجة لنا في المصفوفات الديناميكية .. الأمر أصبح سهلا ...
عموما .. جئتكم اليوم بأسئلة في المؤشرات:
السؤال الأول:
جميعنا يعلم أنه يوجد نوعان من المصفوفات:
a-مصفوفات استاتيكية(حجمها ثابت):نقوم بتحديد حجمها قبل تنفيذ البرنامج.
b-مصفوفات ديناميكية(حجمها متغير):نقوم بتحديد حجمها أثناء تنفيذ البرنامج.
العجيب في الأمر !! أن المترجم Dev يتعامل مع المصفوفات استاتيكية و كأنها ديناميكية ! ,انظر المثال:
#include<iostream>
using namespace std;
int main()
{
int size;
cout<<"size=";
cin>>size;
int array[size];
for(int i=0;i<size;i++)
cout<<array<<endl;
system("pause");
return 0;
}عندما قمت بتطبيق هذا المثال .. لم ينبهني على وجود أي خطأ !! وقال لي بأن البرنامج شغال 100% !! بل وقمت بتطبيقه أيضا .. وإذا به يعمل وكأنني في مصفوفة ديناميكية !!!
بالمناسبة فقد قمت بتطبيق الكود في كل من Borland و Visual وقد أظهروا لي الخطأ.
أرجوا من الإخوة التوضيح.
السؤال الثاني:
قرأت في كتاب الإكسير ما يلي:
المتغيرات قيمها متغيرة وعناوينها ثابتة أما الإشارات فعناوينها ثابتة و قيمها ثابتة و لا يمكنك تغيير قيمها بل يجب عليك تهيئتها عند الإعلان عنها , أما المؤشرات فبإمكانك تغيير عنوانيها و قيمها.
مالفرق بين الإشارة و المؤشر ؟

