CPP 016 – Değişkenler

Programı ve verileri bellekte 0 ve 1’ler halinde tutuyoruz. Bu 0 ve 1 leri kullanabilmek için öncelikle onlara bir anlam yüklemeliyiz, onları tanımlamalı, isimlendirmeliyiz. İşte değişkenler tam da bu işe yarıyor.

  • Bir değişken bellekte belli bir alan kaplar 1byte 2 byte …
  • Bir değişkenin belli bir ismi vardır.
  • Bir değişkeni işlem yapmak için kullanabiliriz. Burada sadece matematiksel toplama çıkarma olarak düşünmeyin. Eğer değişkeniniz bir renk ise o rengin bir üst tonunu verecek bir işlem de olabilir.

Biraz bellek hakkında konuşalım. Bellek tek sütundan oluşan upuzun bir tablodur. Her satırında 1 byte’lık veri vardır.

1 byte
1 byte
1 byte
1 byte
1 byte
1 byte

Her değişkenin bellekte belli bir adres ve kapladığı alan vardır. Adres dediğimiz şey ise kaba bir tabirle bellekteki satır numarası.

Bir değişkenin adresini öğrenmek için & operatörünü kullanıyoruz.

int main() {
	int sayi = 5;
	cout << &sayi << endl; // 0000005687EFF574
}

Değişken isimlendirme kuralları

Değişkenlerimize isim verilken dikkat etmemiz gereken bazı hususlar bulunmakta.

  • Değişken isimleri sadece ve sadece harf, rakam veya _ (alt çizgi) içerebilir
  • Değişken isimleri rakam ile başlayamaz
  • Case-senstive’dir. (Büyük-küçük harf duyarlılığı). Yani int ali; ile int Ali; farklı değişkenlerdir.
  • Değişken isimleri herhangibir boşluk veya özel karakter içeremez.
  • Reserved words, değişken ismi olamaz. Yani C++’ın kullanımı için ayrılmış isimler. Örneğin int int; olamaz. int not; olamaz çünkü not da C++’ın kullanımına ayrılmıştır.

Definition and Initialization

  • Definition: Bellekte değişken için bir yer ayırır ama değer ataması yapılmamıştır.
  • Initialization: Yer ayırıp değer atamasını yapar.
	int a; // definition
	int a = 5;  // initialization
	int a(5);   // initialization
	int a{ 5 }; // initialization

https://learn.microsoft.com/en-us/cpp/cpp/declarations-and-definitions-cpp?view=msvc-170

https://stackoverflow.com/questions/23345554/what-distinguishes-the-declaration-the-definition-and-the-initialization-of-a-v

Primitive Data Types

Programlama dilinin bize sunmuş olduğu en temel değişkenlerdir.

INTEGER

Tamsayıları temsil etmek için kullanırız. Şöyle güzel bir tablomuz var. Bu tabloda farklı tamsayı türlerini görüyoruz. Bunları ezberlemenize gerek yok.

Type specifierEquivalent typeWidth in bits by data model
C++ standardLP32ILP32LLP64LP64
signed charsigned charat least
8
8888
unsigned charunsigned char
shortshort intat least
16
16161616
short int
signed short
signed short int
unsigned shortunsigned short int
unsigned short int
intintat least
16
16323232
signed
signed int
unsignedunsigned int
unsigned int
longlong intat least
32
32323264
long int
signed long
signed long int
unsigned longunsigned long int
unsigned long int
long longlong long int
(C++11)
at least
64
64646464
long long int
signed long long
signed long long int
unsigned long longunsigned long long int
(C++11)
unsigned long long int

Daha özet bir şekilde aktarmak gerekirse. Byte cinsinden boyutu küçükten büyüğe doğru sıralarsak:

  • char
  • short
  • int
  • long
  • long long

Ayrıca signed ve unsigned olarak ikiye ayrılıyorlar.

  • signed (işaretli): pozitif ve negatif değerler alabilir. (-3, 0, 3 gibi)
  • unsigned (işaretsiz): sadece pozitif değerler alabilir. (0, 3 gibi)

Float

Kayan noktalı sayıları göstermek için kullanılır. 0.5, 3.14 gibi

  • float: 4 byte
  • double: 8 byte (yani daha hassas)
// creating float type variables
float num1 = 3.0f;
float num2 = 3.5f;
float num3 = 3E-5f; // 3x10^-5

// creating double type variables
double num4 = 3.0;
double num5 = 3.5;
double num6 = 3E-5; // 3x10^-5

float atamalarında sayıların yanına f yazıldığına dikkat edelim.

  • 3.0f -> float literal
  • 3.0 -> double literal

Bunu yazmasak da programımız düzgün çalışır. Çünkü compiler arka tarafta bu tip dönüşümleri bizim için yapıyor

Char

Hem karakter hem de sayıları temsil etmek için kullanıyoruz.

  • char a = ‘A’; char a = ‘a’;
  • Karakter için ‘ string için ” kullanıyoruz.
  • std::string bir primitive data type değildir.

Bool

Mantıksal veri tipidir. 2 değer alabilir

  • true
  • false
bool control = true;

if(control)
  cout << "hello" << endl;

true false yerine sayı veya pointer gibi farklı şeyler de kullanabiliriz.

#include <iostream>
using namespace std;

int main() {
	int a = 2, b = 0;
	if (a)
		cout << "a=2" << "\ttrue" << endl;
	else
		cout << "a=2" << "\tfalse" << endl;


	if (b)
		cout << "b=0" << "\ttrue" << endl;
	else
		cout << "b=0" << "\tfalse" << endl;


	// a = 2     true
	// b = 0     false

}


Comments

Leave a Reply

Your email address will not be published. Required fields are marked *