اول باید معنای اعلان و تعریف و تفاوت اعلان و تعریف رو بدونیم
وقتی یه متغیر بودن اعلان استفاده بشه برنامه کامپایل نمیشه چون کامپایلر نمیدونه با یه متغیر اعلان نشده چکار کنه.
cout<<x; // کامپایل نمیشود
وقتی یه متغیر اعلان بشه اما تعریف نشه برنامه کامپایل میشه و کامپایلر به مشکلی برنمیخوره اما در زمان اجرا ممکنه برنامه دچار اشکال بشه چون متغیر تعریف نشده.
unsigned int *x;
cout<<*x; // کامپایل میشود اما ممکن است در زمان اجرا اخطار تولید کند
یک متغیر رو یک بار میشه تعریف کرد اما میشه بارها اعلان کرد. وقتی کد برنامه به چند قسمت تقسیم میشه و یک متغیر در بیش از یک قسمت استفاده میشه، لازمه که در یک بخش تعریف بشه و در بقیهی بخشها اعلان بشه.
هیچ پژوهش انسانی نمیتواند ادعای علمی بودن داشته باشد، مگر اینکه از برهان ریاضی برخوردار باشد (لئوناردو داوینچی)