الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

ما الفرق بين....؟

بدأه amin_mu123 في 2 سبتمبر 2008 · 9 رد · 841 مشاهدة · في الأسئلة المجابة
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم

السؤال هو...

ما الفرق بين الجمل الآتيه

char * a_ptr="arabteam";

const char*a_ptr="arabteam";

char * const a_ptr="arabteam";

const char*const a_ptr="arabteam";

سؤال سهل جدا

أريد الكل يشارك

اللهم صل على سيدنا محمد وعلى آله وصحبه وسلم

#2

الاولى : مؤشر متغير لمتغير

2: لا اعرف ...

3: لا اعرف

4: مؤشر ثابت لثابت

الله اعلم

#3
char * a_ptr="arabteam";

مؤشر إلي نص

const char*a_ptr="arabteam";

مؤشر ثابت إلي نص

char * const a_ptr="arabteam";

مؤشر إلي نص ثابت

const char*const a_ptr="arabteam";

مؤشر ثابت إلي نص ثابت

تم تعديل هذه المشاركة بواسطة عمـــرو في 2 سبتمبر 2008 في 23:02

#4

أعتقد عمرو أجاب الاجابة الكاملة

tvquran_6.gif

#5

اختلف معك اخي عمرو في هذي النقطتين

const char*a_ptr="arabteam";

مؤشر غير ثابت يؤشر الى قيمة ثابتة

char * const a_ptr="arabteam";

مؤشر ثابت الى قيمة غير ثابتة

#6

نعم يا مستشار كلامك صحيح .

لم أنتبه لها. ولكن أعتقد انه عمرو أخطاء الترتيب فقط.

وهذا مثال

  1.  
  2. #include <cstdlib>
  3. #include <iostream>
  4.  
  5. using namespace std;
  6.  
  7. int main(int argc, char *argv[])
  8. {
  9.  
  10. char a[]="arabteam";
  11. const char* a_ptr=a;
  12.  
  13. cout<<++(a_ptr)<<endl;
  14. //cout<<++(*a_ptr)<<endl;
  15.  
  16.  
  17. char*const a_ptrt=a;
  18. //cout<<++(a_ptrt)<<endl;
  19. cout<<++(*a_ptrt)<<endl;
  20.  
  21. const char* const a_ptrn=a;
  22. // cout<<++(a_ptrn)<<endl;
  23. //cout<<++(*a_ptrn)<<endl;
  24.  
  25. system("PAUSE");
  26. return EXIT_SUCCESS;
  27. }
  28.  
  29.  

تم تعديل هذه المشاركة بواسطة فهدالشلوي في 3 سبتمبر 2008 في 02:57

tvquran_6.gif

#7

نعم كلامكما صحيح ، أخطأت في الترتيب.

#8

ممتاز يا اخوانى

وهناك إضافه صغيره لاحظوا معى هذا البرنامج

  1. #include <iostream>

  2. using namespace std;
  3. int main()
  4. {
  5. char* const a1_ptr="arabteam";
  6. char* b1_ptr=a1_ptr;
  7. b1_ptr="2000";
  8. cout<<a1_ptr<<endl;
  9. //************************************
  10. const char* a2_ptr="arabteam";
  11. char* b2_ptr=(char*)a2_ptr;
  12. b2_ptr="2000";
  13. cout<<a2_ptr<<endl;
  14. //************************************
  15. const char* const a3_ptr="arabteam";
  16. char* b3_ptr=(char*)a3_ptr;
  17. b3_ptr="2000";
  18. cout<<a3_ptr<<endl;
  19. return 0;
  20. }
  21.  

عند وجود كلمة const قبل char* وجب استخدام التحويل عن طريق char* الموجوده بين الأقواس

لأن وجود const فى البدايه معناه أن النص ثابت وبالتالى لكى نجعل أى مؤشر عادى يشير الى ذلك النص يجب استخدام التحويل الذى ذكرته

وشكرا لكم

اللهم صل على سيدنا محمد وعلى آله وصحبه وسلم

#9

جميل بارك الله فيك.

tvquran_6.gif

#10

:ty: لك فهد ..

وبارك الله فيك..

تم تعديل هذه المشاركة بواسطة amin_mu123 في 3 سبتمبر 2008 في 05:49

اللهم صل على سيدنا محمد وعلى آله وصحبه وسلم

مواضيع مشابهة