Jacquelyn

I'm laughing at justice on the wall
Moderator
Katılım
15 May 2017
Mesajlar
4,612
Beğeni Puanı
2,746
1200px-ISO_C++_Logo.svg.png

Merhaba dostlarım, C++ programlama da sizlere Pointer (Offsets) kullanımını öğreteceğim.Umarım C++ üzerinde çalışma yapacak arkadaşlar için yardımcı bir konu içeriği olacaktır.

C++ ile dinamik bellek yönetimi sırasında kullanılan pointer (offsets) veya bir diğer adıyla işaretçiler olarak adlandırılan yapının kullanımı öğreneceksiniz.

Pointer (Offsets) Nedir?

Pointer veya işaretçiler değer olarak bellek adresini tutan değişkenlerdir.
Pointer genellikle dinamik bellek yönetimi için kullanılır.

Pointer (Offsets) Tanımlama

Pointer <değişken-türü>*<değişken-adı> olarak tanımlanır.​
Pointer Tanımlama:
char *cp;
int *ip;
float *fp;
double *dp;
Pointer (Offsets) Yapısı

Pointer değişkeni diğer değişkenler gibi değer saklamaktadır.
Fakat pointer değer olarak tanımlanan türdeki değişkenin bellek adresini saklar.
Karakter saklanmak istediğinde char değişken türü kullanılırken bu değişkenin adresini tekrardan char türünde bir pointer değişkeninde saklanması gerekmektedir.
Değişkenlerin bellek adresi ampersand (&) işareti ile alınır.
Pointer Kullanımı İle İlgili Örnek:
#include <iostream>

using namespace std;

int main(){

  int sayi = 1453;
  cout << "Degisken degeri: " << sayi << endl;
  cout << "Degisken adresi: " << &sayi << endl;

  cout << endl;

  int *ptr = &sayi;
  cout << "Pointer'in gosterdigi adres: " << ptr << endl;
  cout << "Pointer'in gosterdigi adres degeri: " << *ptr << endl;
  cout << "Pointer adresi: " << &ptr;

  return 0;
}
Pointer İşlemleri ve Diziler

Pointerlar adresini tuttuğundan, ekleme ve çıkarma yapacak diziler gibi sıralı bellek değerlerinin okunması sağlanmaktadır.
C++:
#include <iostream>

using namespace std;

int main(){

  int sayilar[] = {55, 66, 77, 88, 99, 18};
  int *ptr = sayilar; // &sayilar[0];

  cout << "1.Jacquelyn: " << *ptr << endl;
  ptr++;
  cout << "2.Jacquelyn: " << *ptr << endl;
  cout << "5.Jacquelyn: " << *(ptr + 3) << endl;
  ptr--;
  cout << "1.Jacquelyn: " << *ptr << endl;

  return 0;
}
Pointer üzerinden belleğin farklı alanlarına erişim sağlama imkanı olmasından dolayı dikkatli kullanılmalıdır.
C++:
#include <iostream>

using namespace std;

int main(){

  char karakter = 'Y';
  char *ch = &karakter;

  for (int i = 0; i <= 10; i++){
    cout << *(ch + i);
  }

  return 0;
}
Pointer Kullanımı

Pointer yardımı ile dizi içeriğinin yazdırılması örnekte ki gibidir.
C++:
#include <iostream>

using namespace std;

int main(){

  int sayilar[] = {55, 66, 77, 88, 99, 18};
  int *ptr = sayilar;

  for (int i = 0; i < sizeof(sayilar) / 4; i++){
    cout << "sayilar[" << i << "] = " << *(ptr + i) << endl;
  }

  return 0;
}
Pointer referans ile fonksiyon çağırma işleminde de sıklıkla kullanılır.
C++:
#include <iostream>

using namespace std;

int degerFonksiyonu(int sayi){
  sayi = 1453;
}

int referansFonksiyonu(int *sayi){
  *sayi = 1453;
}

int main(){

  int sayi = 10;

  degerFonksiyonu(sayi);
  cout << sayi << endl;

  referansFonksiyonu(&sayi);
  cout << sayi << endl;

  return 0;
}
Pointerların en önemli kullanım alanı dinamik bellek yönetimidir.
Dinamik bellek yönetimi programın çalışma esnasında bellekten yer ayrılması ve serbest bırakılmasıdır.
C++:
#include <iostream>

using namespace std;

int main(){

  int elemanSayisi = 0;
  int *eleman;

  cout << "Eleman sayisi: ";
  cin >> elemanSayisi;

  eleman = (int *) malloc(elemanSayisi * sizeof(int));

  for (int i = 0; i < elemanSayisi; i++){
    cout << i + 1 << ". eleman: ";
    cin >> *(eleman + i);
  }

  for (int i = 0; i < elemanSayisi; i++ ){
    cout << eleman[i] << endl;
  }

  free(eleman);

  return 0;
}
Pointerin bellek adresini tutan pointerlara pointerin pointeri denir.
Pointerin pointeri örneği ise şu şekildedir.
C++:
#include <iostream>

using namespace std;

int main(){

  int sayi = 1453;
  int *ptr = &sayi;
  int **pptr = &ptr;
  int ***ppptr = &pptr;
  int ****pppptr = &ppptr;

  cout << sayi << endl;
  cout << *ptr << endl;
  cout << **pptr << endl;
  cout << ***ppptr << endl;
  cout << ****pppptr << endl;

  return 0;
}
Fonksiyon adreslerini tutan pointerlara ise fonksiyon pointeri denir.
Fonksiyon pointeri örneği ise şu şekildedir.
C++:
#include <iostream>

using namespace std;

int carpma(int s1, int s2) {
  return s1 * s2;
}

int toplama(int s1, int s2) {
  return s1 + s2;
}

int main(){

  int (*fonksiyon)(int, int);

  fonksiyon = carpma;
  cout << fonksiyon(10, 20);

  cout << endl;

  fonksiyon = &toplama;
  cout << (*fonksiyon)(10, 20);

  return 0;
}
C++ programlama dilinde pointer diziler, nesneler ve karakterler ile yapılırken sıklıkla kullanılmaktadır.

Umarım konu içeri faydalı ve yardımcı bir içerik olmuştur.​
 

irem altay gemici

Cezalı Üye
Banlı Üye
Katılım
17 Kas 2017
Mesajlar
11
Beğeni Puanı
0
Yaş
36
YouTube den video izleyip gelip burda konu açanlar var sanırım ve bu işler böyle bak burda yazıyor al yap der gibi konu açmak olmaz anlatım eğitim lazım sınıfta kaldın
 

Jacquelyn

I'm laughing at justice on the wall
Moderator
Katılım
15 May 2017
Mesajlar
4,612
Beğeni Puanı
2,746
YouTube den video izleyip gelip burda konu açanlar var sanırım ve bu işler böyle bak burda yazıyor al yap der gibi konu açmak olmaz anlatım eğitim lazım sınıfta kaldın
Bu yazılım işini öğrenmek isteyen var ise durumu o kadar beleşçiliğe getirmeyecek güzel kardeşim benim.Sürekli beleş yoldan source hazırlayanlar var oldukça kimse gelişmez.
Zaten yazılım üzerinde çalışma isteği olan bir insan derinlemesine araştırmalar yapar ve maddi durumu iyi ise eğitimler alır ve kurslara gider.Belli oluyor ki sende bu beleşci arkadaşlarımız arasındasın paylaştığım kod satırlarına aval aval bakmak yerine başka kaynaklar üzerinden araştırmalar yap ve C++ diline bir giriş yap sana tavsiyem bu hayatta kendin bir şey başarmadan başka bir kişiye salça olma
 

SCRİPTT

Süper Üye
Katılım
13 Şub 2018
Mesajlar
742
Beğeni Puanı
141
Yaş
22
Bu yazılım işini öğrenmek isteyen var ise durumu o kadar beleşçiliğe getirmeyecek güzel kardeşim benim.Sürekli beleş yoldan source hazırlayanlar var oldukça kimse gelişmez.
Zaten yazılım üzerinde çalışma isteği olan bir insan derinlemesine araştırmalar yapar ve maddi durumu iyi ise eğitimler alır ve kurslara gider.Belli oluyor ki sende bu beleşci arkadaşlarımız arasındasın paylaştığım kod satırlarına aval aval bakmak yerine başka kaynaklar üzerinden araştırmalar yap ve C++ diline bir giriş yap sana tavsiyem bu hayatta kendin bir şey başarmadan başka bir kişiye salça olma
Hile yapicak arkadaslar icin read/write rpm wpm funksiyonlari anlatirsan güzel olur
 

irem altay gemici

Cezalı Üye
Banlı Üye
Katılım
17 Kas 2017
Mesajlar
11
Beğeni Puanı
0
Yaş
36
Bu yazılım işini öğrenmek isteyen var ise durumu o kadar beleşçiliğe getirmeyecek güzel kardeşim benim.Sürekli beleş yoldan source hazırlayanlar var oldukça kimse gelişmez.
Zaten yazılım üzerinde çalışma isteği olan bir insan derinlemesine araştırmalar yapar ve maddi durumu iyi ise eğitimler alır ve kurslara gider.Belli oluyor ki sende bu beleşci arkadaşlarımız arasındasın paylaştığım kod satırlarına aval aval bakmak yerine başka kaynaklar üzerinden araştırmalar yap ve C++ diline bir giriş yap sana tavsiyem bu hayatta kendin bir şey başarmadan başka bir kişiye salça olma
Şimdi Güzel İnsan Bir İnsan olabilmek İçin Daha Çok Şey öğrenmek Gerekir. Beleşci dediğin İnsanlar Bu Site Üzerinden Hile Yapanlarmı O Kısmı Anlamadım Zira Tüm Site Ziyaretçileri Ve Site Üyelerinden Bahsediyor Gibisin Ayrıca Ben Kodlarım Kodlamam Veya Öğrenirim Öğrenmem Sanane Ayrıca Hile hack Kodlayıp İnsanlar Kullansınlar Diye Paylaşmak Zoruna Gidiyorsa Ki senden bi cacık Olmaz Sanırım :) Paylaşma Paylaşıp Kullananlara da Laf Konuşmak Sana Düşmez Kaldıki Hazıra Konan Beleşçiler Olarak Sana Bir Laf Söyliyim Madem Ben Beleşci Hazıra Konan Bir Adamım Eleştiriye Açığım :D Cevap Vermiycem Sana :D
Kod ile Gidersin:
{
("Burdaki İnsanlara Beleşci Diyecek Bir Modaratörün Taaa Arkasından Atkı Atıyım Ne Diyim Artık :)");
}
bu arada bana katılan arkadaşlar varsa lütfen rapor lasınlar yazının sol altında rapor kısmından report edebilirler hangi cevabı beğenmediyseniz onu raporlayınız.
 
Son düzenleme:

PusherRuling

Cezalı Üye
Banlı Üye
Katılım
1 Ağu 2019
Mesajlar
430
Beğeni Puanı
64
Yaş
19
Şimdi Güzel İnsan Bir İnsan olabilmek İçin Daha Çok Şey öğrenmek Gerekir. Beleşci dediğin İnsanlar Bu Site Üzerinden Hile Yapanlarmı O Kısmı Anlamadım Zira Tüm Site Ziyaretçileri Ve Site Üyelerinden Bahsediyor Gibisin Ayrıca Ben Kodlarım Kodlamam Veya Öğrenirim Öğrenmem Sanane Ayrıca Hile hack Kodlayıp İnsanlar Kullansınlar Diye Paylaşmak Zoruna Gidiyorsa Ki senden bi cacık Olmaz Sanırım :) Paylaşma Paylaşıp Kullananlara da Laf Konuşmak Sana Düşmez Kaldıki Hazıra Konan Beleşçiler Olarak Sana Bir Laf Söyliyim Madem Ben Beleşci Hazıra Konan Bir Adamım Eleştiriye Açığım :D Cevap Vermiycem Sana :D
Kod ile Gidersin:
{
("Burdaki İnsanlara Beleşci Diyecek Bir Modaratörün Taaa Arkasından Atkı Atıyım Ne Diyim Artık :)");
}
bu arada bana katılan arkadaşlar varsa lütfen rapor lasınlar yazının sol altında rapor kısmından report edebilirler hangi cevabı beğenmediyseniz onu raporlayınız.
racon a racon hadi bakalım :D
 

Üst Alt