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

[ تمت الإجابة ]هل فهمي صحيح للمراجع والمؤاشرات

بدأه طموحة بلا حدود في 16 مارس 2013 · 4 رد · 751 مشاهدة · في الأسئلة المجابة
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم 

 

اطلعت على المواضيع المتعلقه بالمواشرات في المنتدي  

فهمت اعتقد الشي البسيط عنها

 

ياريت حد يصحح لي اذا فهمت خطأ

 

مثلا في هذا الكود

#include<iostream>
using namespace std;

void c1(int x){
	x++;}
void c2(int& x){
	x++;}
void c3(int* ptr)
{ *ptr++;

}

int main() { 
	int x;
	cout<<"Enter x"<<endl;
	cin>>x; 
	c1(x);
	cout<< x<<endl;
	c2(x); 
	cout<< x<<endl;
	c3(&x);
	cout<< x<<endl;
	
return 0;
}

عند تمرير القيمه  لا تتغير قيمه المتغير

وعند تمرير المرجع او المؤشر تتغير قيمه المتغير

اي ان المرجع هو نسخه من المتغير يستطيع تغيير القيمه

والمؤشر يصل الى المتغير بالعنوان ويغير قيمته

كلمات بسيطه عبرت بها مش عارفه صح ام خطا

واعرف ان الموضوع اكبر من كذا بس هذا الي فهمته

لو حد عنده تعديل او اضافه  يفيدني مشكور

كثيــــرووون هــــــــم أولئـكــــــ الـــــــذيـــن يسعــــووون جــــــاهــــــدين مــــن أجـــــل التميـــــز ولكـــــــن!!!!

هيهــــــــات فالقمــــــــة لا تتســـــع إلا لـــــــواحد ومـــــع ذالكــــــــ فلكــــــل مجتهــــــــد نصيــــب

#2

اسلام عليكم

اختي العزيزة انظري هذه المقارنة لكي تفهمي اكثر


post-264243-0-73434800-1363528442_thumb.

ولكي تفهمي اللغة اكثر انصحك بان تقرائي كتاب الاكسير في السي++ للاخ سلطان الثبيتي

تم تعديل هذه المشاركة بواسطة ±MICRO في 17 مارس 2013 في 16:55

1
#3

لكي تقوم بتغيير القيمة لابد ان تمررها كمؤشر اي ان وسيط الدالة لابدان ان يكون مؤشر من نفس نوع البيانات كــ:

 

 

void ci1(int *x){*x++;}

post-15367-027053900%201340345097.gifpost-15367-087183200%201340344597.gif
post-247365-0-10080400-1379403554_thumb.

#4

يبدو اننا نسيا تحميل المتغير بقيمة x=10;

#include<iostream>
using namespace std;

void c1(int x){
	x++;
}
void c2(int& x){
	x++;
}
void c3(int* ptr)
{ 
       *ptr++;
}

int main() { 
	int x;
        x=10;
	cout<<"Enter x: "<<endl;
	cin >> x; 
	c1(x);
	cout << x << endl;
	c2(x); 
	cout << x <<endl;
	c3(&x);
	cout << x<< endl;
	
return 0;
}

 

Enter x:101111

تم تعديل هذه المشاركة بواسطة محمد عودة في 17 مارس 2013 في 21:10

post-15367-027053900%201340345097.gifpost-15367-087183200%201340344597.gif
post-247365-0-10080400-1379403554_thumb.

#5

اشكركم جدا اخواني على التوضيح وبدات تتضح لي الامور

اخي مايكرو  تسلم وعندي كتاب الاكسير وإن شاء الله اطلع على الموضوع منه

اخي محمد  المثال مفهوم  واعتقد انه لا داعي لاسناد قيمه لل X لان المستخدم يدخل القيمه

كثيــــرووون هــــــــم أولئـكــــــ الـــــــذيـــن يسعــــووون جــــــاهــــــدين مــــن أجـــــل التميـــــز ولكـــــــن!!!!

هيهــــــــات فالقمــــــــة لا تتســـــع إلا لـــــــواحد ومـــــع ذالكــــــــ فلكــــــل مجتهــــــــد نصيــــب

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

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…