قسم الميكروكنترولر والروبوت ودوائر الاتصال بالحاسب الالي قسم المتحكمات الـ microcontroller و المعالجات microprocessor و التحكم الرقمي بالكمبيوتر CNC والانظمة الآلية والروبوت Robots

   

الصورة الرمزية F.Abdelaziz
F.Abdelaziz
:: استاذ و مشرف قسم الالكترونيات ::
تاريخ التسجيل: May 2007
المشاركات: 6,832
نشاط [ F.Abdelaziz ]
قوة السمعة:
قديم 24-02-2014, 04:25 PM المشاركة 33   
افتراضي



14-2 مؤشرات المصفوفة Array Pointers :

فى لغة السى ، "اسم المصفوفة" هو أيضا "مؤشر للعنصر الأول" بالمصفوفة . وبالتالى فإنه فى المصفوفة :

كود:
int Sum[10];
الاسم Sum هو أيضا مؤشر للعنصر الأول Sum[0] بالمصفوفة (بداية المواقع المحجوزة للمصفوفة بالذاكرة) ، وهو يحفظ عنوان المصفوفة . بالمثل ، فإن العبارات التالية يمكن استخدامها أيضا للإشارة إلى المصفوفة :

كود:
int *ptr; //ptr is an integer pointer ptr = &Sum[0]; //ptr points to first element of array Sum
العبارتان التاليتان متكافئتان ، لأن Sum هو أيضا عنوان المصفوفة Sum :

كود:
Sum[2] = 0; *(Sum + 2) = 0;
من المثير للاهتمام أن نلاحظ أن العبارة التالية صواب ، لنفس السبب :

كود:
&Sum[3] = Sum + 3;


14-3 استخدام المؤشرات فى عمليات السلسلة النصية Using Pointers in String Operations :

اعلانات

الصورة الرمزية F.Abdelaziz
F.Abdelaziz
:: استاذ و مشرف قسم الالكترونيات ::
تاريخ التسجيل: May 2007
المشاركات: 6,832
نشاط [ F.Abdelaziz ]
قوة السمعة:
قديم 24-02-2014, 08:40 PM المشاركة 34   
افتراضي


14-3 استخدام المؤشرات فى عمليات السلسلة النصية Using Pointers in String Operations :

تطبيق أخر مفيد للمؤشرات وهو إنشاء والتعامل مع "متغيرات السلسلة النصية " . تذكر أن السلسلة النصية هى "مجموعة مصفوفات حرف تنتهى بحرف الصفر NULL .
باستخدام المؤشرات ، يمكننا إنشاء سلسلة نصية كما هو مبين بالمثال التالى :

كود:
char *p = “JOHN”;

هنا ، تم إنشاء "مصفوفة حروف مخفية" عند وقت الترجمة ، تحتوى على الحروف ‘JOHN’ ، وتنتهى بحرف NULL . يتم التهيئة الابتدائية لمؤشر الحرف ( p ) وتحميلها بعناوين الذاكرة لهذه السلسلة . وهذا أى عنوان الحرف الأول بها وهو حرف ( J ) . المبرمج لا يكون لديه على حجم السلسلة التى تم إنشاؤها ، وبالتالى يجب لا تحاول تغيير محتوياتها باستخدام المؤشر .
فى العديد من التطبيقات قد نرغب فى إنشاء سلاسل ثابتة طويلة . يتم عمل ذلك بسهولة باستخدام المؤشرات وإعلان السلاسل كثوابت . فيمل يلى مثال يوضح ذلك :

كود:
const char *p1 = “My very long text string”;
من المهم أن ندرك الفروق بين الطريقتين التاليتين فى إنشاء السلاسل التالية :

كود:
cont char Text[ ] = “An example text”; const char *p = “An example text”;
· فى العبارة الأولى : يتم إنشاء مصفوفة تسمى Text وإنهائها بحرف NLL . يمكن الوصول للحروف بشكل فردى بواسطة الترقيم التسلسلى (فهرس) index للمصفوفة .
· فى العبارة الثانية : الحروف “An example text” وصفر الانتهاء يتم تخزينها فى مكان ما بالذاكرة ، ويتم تحميل المؤشر ( p ) بعنوان أول حرف بهذا النص ، وهو الحرف ( A ) .

يمكننا إنشاء مصفوفات لسلاسل نصية باستخدام المؤشرات . فى المثال التالى ، يتم إنشاء سبع مؤشرات بالأسماء من Days[0] إلى Days[6] ويتم تحميل كل مؤشر بالعنوان المقابل لاسم اليوم . يتم تعيين بعد مصفوفة المؤشرات تلقائيل بالقيمة ( 7 ) بواسطة المترجم .

كود:
char *Days[ ] ={ “Monday”, “Tuesday”, “Wednesday”, “Thursday”, “Friday”, “Saturday”, “Sunday” };
15- الأبنية Structures :

اعلانات اضافية ( قم بتسجيل الدخول لاخفائها )

عبدالفتاح حبيب
:: مهندس متواجد ::
تاريخ التسجيل: Dec 2012
المشاركات: 109
نشاط [ عبدالفتاح حبيب ]
قوة السمعة:
قديم 14-05-2016, 12:53 AM المشاركة 35   
افتراضي برمجة الميكرو كونترولر pic 16f877a


اريد حل مشكلة هذه الجملة there is not enough rom space هل يوجد شرط معين ام يكون اية الحل وشكرا


الصورة الرمزية F.Abdelaziz
F.Abdelaziz
:: استاذ و مشرف قسم الالكترونيات ::
تاريخ التسجيل: May 2007
المشاركات: 6,832
نشاط [ F.Abdelaziz ]
قوة السمعة:
قديم 14-05-2016, 01:33 AM المشاركة 36   
افتراضي


اريد حل مشكلة هذه الجملة there is not enough rom space هل يوجد شرط معين ام يكون اية الحل وشكرا
http://www.qariya.info/vb/showthread.php?t=171454



الساعة معتمدة بتوقيت جرينتش +3 الساعة الآن: 04:39 PM
موقع القرية الالكترونية غير مسؤول عن أي اتفاق تجاري أو تعاوني بين الأعضاء
فعلى كل شخص تحمل مسئولية نفسه إتجاه مايقوم به من بيع وشراء وإتفاق وأعطاء معلومات موقعه
التعليقات المنشورة لا تعبر عن رأي موقع القرية الالكترونية ولايتحمل الموقع أي مسؤولية قانونية حيال ذلك (ويتحمل كاتبها مسؤولية النشر)