C++ Notlarım
https://www.log2base2.com/C/pointer/computer-memory-address-basics.html
İşaretçiler (pointers) bellekte depolanan değerden ziyade bellekteki konumunu belirtmek için kullanılır. Başka bir deyişle, değişkenler bellekte saklanan değerleri işlemek için kullanılırken, işaretçiler değişken adreslerini (bellek konumu) işlemek için kullanılır.
Bilgisayar belleğinde, temel bellek birimi bir bayttır (8 bit). Her baytın benzersiz hafıza adresi olacaktır. Anlamak için, ondalık değer kullanarak bellek adresini göstereceğiz. Bellek adresi doğrusaldır ve her baytın benzersiz bir adresi olacaktır.
- Bir karakteri saklamak için bilgisayar, 1 * 8 = 8 bit olan 1 bayt bellek ayıracaktır.
- Bir tamsayı (integer) veya float değer saklamak için, bilgisayar 4 baytlık bellek ayıracaktır, bu 4 * 8 = 32 bittir.
- Bir double değeri saklamak için, bilgisayar 8 baytlık bellek ayıracaktır ki buda 8 * 8 = 64 bittir.
İşaretçi, başka bir değişkenin adresini içeren bir değişkendir. Bir işaretçiye değer atayamayız. Bunun yerine, başka bir değişkenin adresini işaretçiye atayabiliriz. İşaretçileri kullanarak donanımla doğrudan iletişim kurabiliriz. Bu, gömülü programlamada çok kullanışlıdır. Gömülü programlamada verileri okuyup donanım adresine yazıyoruz, normal c programlamada ise kullanıcıdan veri okuyoruz ve çıktıyı kullanıcıya göstereceğiz.
Sabit Tanımlamak
#define
, programcının program derlenmeden önce sabit bir değere isim vermesini sağlayan kullanışlı bir C++ bileşenidir. Derleyici, bu sabitlere yapılan başvuruları derleme zamanında tanımlanan değerle değiştirecektir.
Genelde, sabitleri tanımlamak için const
anahtar sözcüğü tercih edilir ve #define
yerine kullanılmalıdır.
Sayısal veya dize sabitleri oluşturmak için const
veya #define
kullanabilirsiniz. Diziler için const
kullanmanız gerekecektir. Genel olarak, sabitleri tanımlamak için #define
yerine sabit tercih edilir.
#define SABIT_ADI “değeri” // ; ve = kullanılmaz
veya
const SABIT_ADI="değeri";
#define ledPin 3
// Derleyici, derleme zamanında ledPin değerini 3'le değiştirecektir
Operatörler
Aritmatik Operatörler: +
, —
, *
, /
İlişki (Relational) İşleçleri: ==
, !=
, <
, >
, >=
, <=
Bitwise İşleçleri: &
, |
, ~
, ^
, <<
, >>
A = 0101
B = 1001
------------
A | B = 1101
A & B = 0001
~A = 1010
~B = 0110
A <<1 = 1010 //1 adım sola kaydır 0101 << 1 = 1010
B <<1 = 0001 0010 //B 1 adım sola kaydığında B=9 iken B=20 olur
B <<2 = 0010 0100 //B 2 adım sola kaydığında B=9 iken B=36 olur