Jump to content
Forumu Destekleyenlere Katılın ×
Paticik Forumları
2000 lerden beri faal olan, çok şukela bir paylaşım platformuyuz. Hoşgeldiniz.

C de pointer nedır ?


The_Delucian

Öne çıkan mesajlar

okuyom okuyom anlamıyom ...
poınter kullanmadan her ısımı halledebılıyorum ...
hayalgucum yok poınter larla ılgılı ...
ayrıyetten genel kullanım sekıllerı falan bılen ve anlatabılecek olan var mıdır ?
bı sub fonksyonan 2. degerı return suz cagırmak dısında ne ıse yarar ?[hline]*The Bagımsız Oyun Bagımlısı
ölümüne TURK
Aranel Lúinwë
Link to comment
Sosyal ağlarda paylaş

Kitabı karıştırdım ama net birşey yazmıyor. Tam olarak emin olamamakla beraber şöyle bir yorumda bulunabilirim sanırım;

Herhangi bir değişken yada sabit tanımlayıp bunu direk olarak parametre olarak aktardığında değişkenin yada sabitin bir kopyası oluşturularak işleme sokuluyor. İşaretçileri kullandığında parametre olarak aktardığın bilgi direk adres olduğu için böyle bir olay olmuyor. Dolayısıyla olay performans artışı ile ilgili.

Bu bilgi eksik yada tam doğru olmayabilir. Hayal meyal hatırladığım birşey çünkü.[hline]Uniyasam.Com Admin / ICQ#85889898
Grafiker ( Corel Draw & Photoshop ).
Autocad öğrenmek zorunda kalmış olan kişi.
Fizik okumayı bilinçli olarak seçen bilgisayar manyağı ve ruh sağlığı yerinde olmayan biri.
Link to comment
Sosyal ağlarda paylaş

fizban yazdığımın doğru olup olmadığı konusunda bir fikrin var mı? yanlış bilmeyelim, yanlışsa bile doğrusunu öğrenelim dimi ama ...[hline]Uniyasam.Com Admin / ICQ#85889898
Grafiker ( Corel Draw & Photoshop ).
Autocad öğrenmek zorunda kalmış olan kişi.
Fizik okumayı bilinçli olarak seçen bilgisayar manyağı ve ruh sağlığı yerinde olmayan biri.
Link to comment
Sosyal ağlarda paylaş

Pointer adres kopyadir

ne demek bu

yani char *ali dediginde

ve bu pointerti bir variable a esitlediginde

o variablein adresini pointer a yuklersin

eger **ali dersen direk variable gosterir

diger turlu tek * la adresi gosterirsin.


Pointersiz c olum olurdu onuda soylemek lazim javada cursor cursor diye inliyoz
Link to comment
Sosyal ağlarda paylaş

c ve türevlerini pek bilmem ama pointer bildiğim kadarıyla Visual Basic'teki ByVal ve ByRef ikilisinden ByRef'e denk geliyor.

sadece değişkenin bulunduğu adres yükleniyor, böylece ufak da olsa bir bellek tasarrufu ve eş zamanlı değişim yakalanıyor. (multi threading vs..)[hline]its supersonic
Link to comment
Sosyal ağlarda paylaş

pointer'i tam olarak anlatmak için
"adres gösteren değişken" bence yeterlidir
yani sadece fizbanın dediği gibi değil
direk herhangi bi değişkenin adresini gösterip o adresten kullanmak için de kullanılabilir
değişkenin içeriği kopyalamak içinde
en fazla kullanımıda sanırım
boyutu dinamik olarak belirlenecek stringlerde arraylerde ve matrixlerdedir

dizinin boyutunu maksimum değerle başlatıp boşuna alan ayırmak yada define edip öyle kullanmak yerine en basit iş
pointerla belirtmek

yada fonksiyonlardan çıkması gerekmiyen değişkenler için fiz'in dediği gibi bellekte yer ayırıp kullanıp işleyip değerini alıp
işin bittikten sonra atabilirsin

banada c ye başlarken (4 ay önce) pointer olayı çok karışık onu kaparsan sorun yaşamazsın demişlerdi harbidende öyleymiş[hline] İsmet web programcılığına çok yeni bir kişidir. Çeşitli web sayfaları yapmakta, ancak sayfalarının başlığı hiçbir zaman değişmeyip New Page 1,New Page 2, New Page 3 vs şeklinde kalmaktadır. O halde İsmet hangi html kodundan habersizdir?
Link to comment
Sosyal ağlarda paylaş

said:
onlyreal, 01 January 2004 21:10 tarihinde demiş ki:
eger **ali dersen direk variable gosterir

diger turlu tek * la adresi gosterirsin.

Hemmen acil müdahelemizi yapalım
char *ali;
şeklinde tanımlanmış bir değişkende, ali adresi verir *ali ise değeri verir, **ali bişi vermez,olsa olsa, access violation hatası verir

[Bu mesaj Rahan tarafından 02 January 2004 02:01 tarihinde değiştirilmiştir]
Link to comment
Sosyal ağlarda paylaş

Olaya hemen el atıyorum :P :P :P :P: :P
Intel'deki amcalarımız hafızayı daha verimli kullanmak ve aynı anda hem winamp hem notdefterini açmamız için(MultiTasking)
Çeşitli yöntemler geliştirdiler.(fazla girmeyelim)

Bunlardan biri "Virtual Memory" kavramıdır.
Der ki.....
Her programın(istisnasız !!!)kendine ayrılmış 4GB hafızası vardır. Fakat tüm programların kullandığı toplam hafıza RAM'lerden büyük olamaz
(şimdi bu bilgiyi buz dolabına koyun, daha sonra kritiğini yapacağız !!)(şimdilik sadece 4GB oluduğu bilin yeter....)



------Pointers-------
Hafıza 4GB'lık uzun bir cetvel şeklinde gösterilmiştir.
Bunun içinde sizin programınızın HER ŞEYİ vardır.Fakat CPU (aptalığına verin :) ) neyin nerede olduğunu bilemez ve size sorar der ki : "Cetvelin kaçıncı cm'sinden kaçıncı cm'sine kadar ?"
sizde bu soruya pointer'larla cevap verirsiniz.

Örnek: diyelim ki siz printf ile konsola bir şeyler yazdıracaksınız.

//Char formatı olan "*ali" dir. saf ali "*ali"'inin pointeri bir başka değişle hafızanın kaçıncı byte olduğunu gösteren sayıdır.

char *ali="ALİ";
printf("%s",ali);

İşletim sistemi ile olan tüm I/O bilgileri pointerler yardımı ile aktarılır.

-----Buz Dolabı------

Peki 32 MB hafızası olan bir pc'de nasıl her programın 4GB hafızası olabilir. ???

Programlara bu hafıza adresleme için verilmiştir. yani sizin bilginiz 12345678h adresinde olabilir.....

Eğer bir program bir hafıza bölgesini üzerinde işlem yapmak(okuma/yazma) isterse önce orayı VAR etmek zorundadır. Bunun için işletim sistemine kenisine uygun ölçülerden bir hafıza bölgesi atamasını ister. Bu işlemle istenen bölge RAM'ler üzerinde VAR olur.

(bzk. 2. cümle "Fakat tüm programların kullandığı toplam hafıza RAM'lerden büyük olamaz")

şartı buradan gelir...[hline]"Saçma Olmayan Hiçbir Fikrin Ümidi Yoktur"(A.Einstein)
Criminal2's HomePage
Link to comment
Sosyal ağlarda paylaş

said:
fizban, 02 January 2004 00:02 tarihinde demiş ki:
ha evet baalın dediği nokta da var.

vb deki karşılığı da call by reference olsa gerek eet.[hline]despite all my rage, i'm still just a rat in a cage


.net ten öncesini bilemem ama VB.NET'te ByRef diye geçiyor kendileri.

said:
Rahan, 02 January 2004 01:56 tarihinde demiş ki:
olsa olsa, access violation hatası verir

LoL[hline]its supersonic
Link to comment
Sosyal ağlarda paylaş

şimdi pointer tanımlarının çoğu doğru.
sadece düzelteceğim bi ik nokta var.

call by referance denilen olay programlama dillerindeki genel bi kavramdır.bir yere bir adress ile doğrudan erişimdir.karşılığında call by value,call by name vb. erişim yöntemleri vardır.C de sadece referance ve value yöntemleri bulunur.

** denilen olay ise double indirection'dır.bu pointer'ı point eden bi değişkendir.kullanım alanlarını açıklayacam ama electronics labından bu kadar yaza biliyorum.[hline]Mazhar Alanson-Cem Yılmaz:
Bir zamanlar fırtınalar estirirdim
Link to comment
Sosyal ağlarda paylaş

×
  • Yeni Oluştur...