Choericoe Mesaj tarihi: Kasım 15, 2009 Mesaj tarihi: Kasım 15, 2009 pointer'ı bırakın efektif kullanmayı,halen bazı örneklerde anlama sorunları çekiyorum,geçen bir koda denk geldim ve anlayamadım.Her satıra cout ta çektim ne bitiyor diye(first/second valuelar) c++ int main () { int firstvalue = 5, secondvalue = 15; int * p1, * p2; p1 = &firstvalue; //5 15 p2 = &secondvalue; //5 15 *p1 = 10; //10 15 *p2 = *p1; //10 10 p1 = p2; //10 10 *p1 = 20; //10 20 cout << "firstvalue is " << firstvalue << endl; cout << "secondvalue is " << secondvalue << endl; system("PAUSE"); return 0; } En son basamağa kadar sorunum yok,fakat şu *p1 = 20; ifade nasıl secondvalue'yu 20 yapıyor,ve firstvalue bundan etkilenmiyor.Muhtemelen aptalca birşeyi kaçırıyorum gözden ama nedir o?
nameless Mesaj tarihi: Kasım 15, 2009 Mesaj tarihi: Kasım 15, 2009 çünkü p2'nin işaret ettiği adresi p1'in işaret ettiği adrese atamışsın.
fizban Mesaj tarihi: Kasım 15, 2009 Mesaj tarihi: Kasım 15, 2009 int main () { int firstvalue = 5, secondvalue = 15; int * p1, * p2; p1 = &firstvalue; //5 15 p1 firstval'ı gösterir p2 = &secondvalue; //5 15 p2 secondval'ı gösterir *p1 = 10; //10 15 p1'in gösterdiği yerdeki değeri 10 yap *p2 = *p1; //10 10 p2'nin gösterdiği yerdeki değeri p1'in gösterdiği yerdeki değere eşitle p1 = p2; //10 10 p1, p2'nin gösterdiği yeri göstersin ----------- burdan itibarne artık p1 firstvalue ile ilgisini kaybediyor. *p1 = 20; //10 20 p1'in gösterdiği yer, 20 olsun. cout << "firstvalue is " << firstvalue << endl; cout << "secondvalue is " << secondvalue << endl; system("PAUSE"); return 0; }
Choericoe Mesaj tarihi: Kasım 15, 2009 Konuyu açan Mesaj tarihi: Kasım 15, 2009 anladım,teşekkürler :)
Öne çıkan mesajlar