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

سؤال فى الpointer

مغلق
بدأه mufic_semsem في 12 أغسطس 2004 · 8 رد · 529 مشاهدة · في الأسئلة المجابة
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

الكود دة انا عايز افهم لية مش رادى يشتغل زى ما انا عايز

#include<iostream>
int main()
{
	int x=5;
	int*px=&x;
	cout<<"the value of x is : "<<*px<<endl;
	cout<<"the address of x is : "<<px<<endl;
	char c='a';
	char* pc=&c;
	cout<<"the value of c is : "<<*pc<<endl;
	cout<<"the address of c is : "<<pc<<endl;

	return 0;
}

لية فى حالة ال char مابيدنيش الادرس بينما يعطينى رابش من الميمورى ؟؟؟؟؟!!!!!!

هوة مينفعش اجيب الادرس بتاع char او STRING

لا اله الا الله .......................................... محمد رسول الله

#2

السلام عليكم ,,

المشكلة أن الدخل والخرج في السي++ يتعامل مع ال char ومع ال *char بطباعة البيانات كاملة ,,

فعند كتابة :

char d='g';

cout <<d;
cout <<&d;

نعلم أن طول ال char يساوي بايت واحد ,, لذا في الحالة الأولى سيطبع في الخرج بايت واحد واحد وهو ال g ,,

في الحالة الثانية نعلم أن عنوان ال char يساوي 4 بايت ,, ودخل وخرج السي يتعامل مع مصفوفات ال char وال *char ,, لذا سيطبع عنوان ال char بأول بايت بالقيمة الأصلية ويملا باقي ال 4 بايت بالرابش "كما ذكرت :) " أي 3 بايت +الحرف الخامد بايت واحد ,, غير بايت البيانات الفعلية ,,

يعني العنوان والاصل في السي++ بالنسبة للأحرف تكون متساوية ,, غير أن الأحرف في الأصل تمثل بحجز 4 بايت ,, ولاتعرض الا ماتم حجزه في الأصل ,,

الكلام مشربك ولاأستطيع ان أشرح بشكل أفضل !!

المهم لحل المشكلة فقط اكتب التالي :

char c='a';
char* pc=&c;
cout<<"the value of c is : "<<*pc<<endl;
cout<<"the address of c is : "<<&pc<<endl;

الحل الثاني :

char c='a';
char* pc=&c;
cout<<"the value of c is : "<<*pc<<endl;
printf("%Xh",pc);

حيث سيتم عرض بيانات التمثيل ال hex لل char ,,

المهم ,, يتم دمج قيمةالمتغير char مع عنوانه بطريقة غريبة لحفظ الذاكرة ,, ودعك من التفاصيل ,,

تم تعديل هذه المشاركة بواسطة HGB في 12 أغسطس 2004 في 21:54

banner_60_468.gif

NOTHING IS IMPOSSIBLE

#3

سلام هيثم لي سؤال هنا هل المؤشر ممكن ان يوصف ب char ؟

char* pc=&c;

39_22.gif

تزود من التقوى فإنك لا تدري *** إذا جن ليل هل تعيش إلى الفجر

فكم من فتى أمسى وأصبح ضاحكاً *** وقد نسجت أكفانه وهو لا يدري

لقراءة القرآن الكريم و سماعه و تفسيره ........

ماذا يعني انني مسلم سني؟

قصة غريبة

ConflictResolution.gif

#4

خلاص تاكدت يبدو انه البيسك ماثرة على متشكرين جدا.

39_22.gif

تزود من التقوى فإنك لا تدري *** إذا جن ليل هل تعيش إلى الفجر

فكم من فتى أمسى وأصبح ضاحكاً *** وقد نسجت أكفانه وهو لا يدري

لقراءة القرآن الكريم و سماعه و تفسيره ........

ماذا يعني انني مسلم سني؟

قصة غريبة

ConflictResolution.gif

#5

ياأهلين بعماد الخليل ,, ان شاء الله تكون تمام ,, وأنا أقول قسم السي منور ليه هاها :)

لايمكن أن نصف المؤشر لكل أنواع البيانات ب char لأن طول ال char بايت واحد ,, لكن طول أي مؤشر في الوندوز 4 بايت ,, ماعدا الكائنات الضخمة ,,

المهم يمكن تمثيل أي عنوان وتخزينه في int أو في DWORD أو حتى في متغير من النوع Void ,, بشرط معرفة نوع البيانات الموجود داخله لفكه منه ,,

وهي نفس المفهوم الموجود في الدوت نت بالمتغيرات من النوع Object ,,

هل هذا ماتريد ؟ أم أنا الذي لم أفهم السؤال ,,

banner_60_468.gif

NOTHING IS IMPOSSIBLE

#6

جاوبت على الرد الأول في الوقت الذي كنت تكتب فيه الرد الثاني :) هاها ,, حصل خير كل واحد يصلح سيارتو ,,

banner_60_468.gif

NOTHING IS IMPOSSIBLE

#7

شكرا يا هيثم الاشكالية عندي كانت في التسمية حيث اني متعود على كلمة byte في البيسك.

39_22.gif

تزود من التقوى فإنك لا تدري *** إذا جن ليل هل تعيش إلى الفجر

فكم من فتى أمسى وأصبح ضاحكاً *** وقد نسجت أكفانه وهو لا يدري

لقراءة القرآن الكريم و سماعه و تفسيره ........

ماذا يعني انني مسلم سني؟

قصة غريبة

ConflictResolution.gif

#8

متشكر اخى هيثم للتعارف انا اسمى عصام من مصر

فى حاجة فى الكود بتاعك

لما اكتب لة

char c='a';
char* pc=&c;
cout<<"the value of c is : "<<*pc<<endl;
cout<<"the address of c is : "<<&pc<<endl;

هيطلع ال addres بتاع ال pc و ليس ال address بتاع ال c

المشكلة كلها انى كنت عايز افهم و فهمت الحمد لله و شكرا على التعاون

و معتقدش انا ال programmer متحاج ال address ذات نفسة فى حاجة هوة بس بيعتة لfunction او بيستخدمة من خلال ال memory يعنى مش محتاج يشوفة

ولا اية؟؟؟؟:):)

لا اله الا الله .......................................... محمد رسول الله

#9

السلام عليكم ,,

فعلا لاحاجة لمعرفة العنوان من المستوى الثاني لمتغير مؤشر char من المستوى الأول ,,

يكفي التعامل معها بشكل مباشر فقط ,,

banner_60_468.gif

NOTHING IS IMPOSSIBLE

هذا الموضوع مغلق.

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