Ana içeriğe atla

Kayıtlar

struct C++ Tipi Konu Anlatımı Fonksiyonlar ve Parametre ile Kullanımı

  #include <iostream> #include <string> //getline için kullanılmalı using namespace std; // struct C++ Tipi Konu Anlatımı /* struct Ogrenci // struct tanımlama üye değişkenleri { int ogrenciNo; string isim; double notOrtalama; }; int main()  {  Ogrenci ogrenci1; // Birinci Yöntem ogrenci1.ogrenciNo = 100; ogrenci1.isim = "Ahmet Yilmaz"; ogrenci1.notOrtalama = 85.5; // İkinci Yöntem Ogrenci ogrenci2 = { 103,"Ali Kaya",90.2 }; //struct içindeki elemanların sırası ile yazılmalı cout <<"Ogrenci No : "<< ogrenci1.ogrenciNo << " " << ogrenci1.isim << " " << ogrenci1.notOrtalama << endl; cout << "Ogrenci No : " << ogrenci2.ogrenciNo << " " << ogrenci2.isim << " " << ogrenci2.notOrtalama << endl; return 0; } */ /* struct Ogrenci // struct tanımlama üye değişkenleri { int ogrenciNo; string is...
En son yayınlar

Stack ve Heap Bellek Yönetimi

  #include <iostream> using namespace std; //Stack ve Heap Bellek Yönetimi // stack Otomatik olarak temizlenir // Heap Delete kullanılmadığı sürece bellekte kalır int main()  { int x, y; // burdaki x ve y normal değişkenler gibi davranır ve satck gibi davranıp bellekten otomatik silinir int* p = new int(5); // p değişkeni geçici olarak yer tutar   // new ile bellek tahsisi yapıldığı zaman delete kullanılmalı delete p; // p değişkeni ram den temizlenir // Aşağıdaki örnekte new kullanılmadığı için delete kullanmaya gerek kalmaz heap ile ilişkili değildir // pointer yer tutucudur ama işi bittikten sonra stack gibi davranır ve otomatik temizlenir int w = 20; p = &w; cout << *p << endl; return 0; }

Pointerlar ile Dinamik Bellek Yönetimi

  #include <iostream> using namespace std; /* int main()  { //Pointer_New_Delete ile Dinamik bellek yönetimi // dinamik olarak yer tahsis edilmesi ve tahsis edilen yerin silinmesi // ram de ayrılmış olan alanın işi bittikten sonra ayrılmış olan yerin ram den silinmesi // Neyi ifade eder !! pointer ile işlenen veri silinmez ise ayrılmış olan yer ram de yer tutmaya devam eder // Sonraki gelen yeni verilere yer açılması için delete komutunu kullanmalıyız // Aksi taktirde yeni gelen veriler ramde yeni yerler tutacağından ramin şişmesine yol açar // Ram de biriken veriler ramin çökmesine sebep olmasın diye ayrılmış yerin boşaltılması delete ile gerçekleşir. int *ptr = new int; *ptr = 5; cout << *ptr << endl; delete ptr; // kod bloğunun görevi bittikten sonra kullanılmalı ptr = NULL; // *ptr değişkenimizin ayrılmış olan alanın artık boş olduğu anlamına gelir if (ptr != NULL) // ptr değişkenimizin içeriği boş değilse ekrana yazdır { // p...

Pointerlar ile Fonksiyonların Kullanımı

  #include <iostream> #include <cmath> using namespace std; /* void replaceValue(int *ptr); int main()  { //Pointerlar ile Fonksiyonların Kullanımı // Pointerlar adress tutar ve bu adresdeki veriyi değiştirebiliriz., // Neden !!! ??? :  ram de fazladan yer kaplamasını engellemiş olur  // sadece pointer ram adresinde işlemi yapar  //böylelikle ram den yer kazanmış oluruz int x = 70; // sabit değer olarak kalacak ama pointer ile değeri değiştiricez cout << "value of variable x is " << x << endl; replaceValue(&x); //19 cout << "value of veriable x after the function is " << x << endl; return 0;  } void replaceValue(int *ptr)  { *ptr = 19; //değerimiz artık 19 oldu cout << "value of veriable x after the function is " << *ptr << endl; cout << endl; cout << "ram deki adress : " << ptr << endl; cout << endl; //Kodun çıktısı...

Pointer ve & (ampersant) Konusunu Kavrayalım

  #include <iostream> #include <string> using namespace std; /* int main()  {  int x = 7; cout << "x 'in degeri : " << x << endl; cout << "x 'in RAM deki adresi : " << &x << endl;  // & ile ramdeki ilk adres değeri  000000D3ED4FFCF4 ni bulduk  // int 4 byte oldugundan bu adresde dahil 4 byte 'lik yerin tamamını hesaplar // ama bize  4 byte lik adresin ilk değerini verir. return 0;  } */ /* int main() { // Pointer  ve & (ampersant) Konusunu Kavrayalım int x = 7; int *p = &x; // pointer ile x 'in adres değerini bulma cout << "x 'in degeri : " << x << endl; cout << "x 'in & ile RAM deki adresi : " << &x << endl; //pointer ile gösterimi cout <<"pointer p ile adres degeri : "<< p << endl; cout << "*p ile ( *p = &x) x in pointer degeri : " <...

Pointerlar ve Array'ler ( dizi ) Arasındaki ilişki

  #include <iostream> using namespace std; int main()  { //Pointerlar ve Array'ler ( dizi ) Arasındaki ilişki //index ===>> 0  1   2 int arr[] = { 8, 12, 20 }; int* p; p = arr; cout << p << endl; // Çıktısı : 00000027576FF5B8 cout << arr << endl; // Çıktısı : 00000027576FF5B8 cout <<"pointer dizinin sifirinci index degeri : "<< * p << endl; // Çıktısı : 8 'dir. Dizilerde herzaman ilk önce dizinin ilk elemanı yer tutar. //Dizinin diğer elemanlarına erişim cout <<"pointer adresine +1 eklendi : "<< * (p + 1) << endl;  // dizinin index 0 olan değeri 8 idi. // index değerini *(p + 1) +1 ekleyerek 1 inci index değeri çıktısı 12 'dir. // pionter adresini ram 'de bir arttırmış olduk. //dizinin son elamanı olan 20 sayısına +2 ekleyelim içeriği 22 olacak //*(p + 2) = 22; //cout << "Dizinin son elemani olan 20 sayisina +2 eklendi : " << ...

Pointerların Kullanımı

  Referencing ( & ): Bir değişkenin adresini almak (Adres sormak). Dereferencing ( * ): Adresteki değere ulaşmak (Kapıyı çalıp içeri girmek). Sanal Tablo'da adres değerleri örnek ram adresleri olarak verilldi. int değişkenleri 4 byte ramde yer kaplar örneğin adress 1000 ise int değişkenin sonraki adres değeri 4 byte artacağından 1004 1008 1012 şeklinde "Memory Alignment" (Bellek Hizalaması) ramde artarak yol alır. Pointerların Fonksiyonlardan farkı :  Fonksiyonlar pointerlara göre daha yavaş çalışır  "kopyalayarak" (Call by Value) alması ve anlık hesaplamaları pointerlar kadar kısa sürede hesaplayamaz. Pointerlar  "pointer/referans kullanarak" (Call by Reference) alması doğrudan RAM CPU aracılığı ile saniyede yüzbinlerce hesaplamayı yaparken fonksiyonlar bukadar büyük hesaplamaları pointer kadar hızlı yapamaz. Pointer ramda yer tutuculuğu özelliği sayesinde hesaplamaları doğrudan yapıp sonuca varır. Fonksiyonlar kendi içinde değişkenleri hesapl...