Arttırma Azaltma Operatörleri
ARTIRMA VE AZALTMA OPERATÖRLERİ
C, tekli artırma operatörü ( ++ ) ve tekli azaltma operatörünü ( -- ) kullanmamıza izin verir.Bu operatörlerin özetini Şekil 3.12'de bulabilirsiniz.Eğer c değişkeni 1 arttırılacaksa, c = c +1 ya da c += 1 yerine artırma operatörü de kullanılabilir. Eğer artırma ya da azaltma operatörleri değişkenden önce yerleştirilirse, sırasıyla ön arttırma ( preincrement ) ya da ön azaltma (predecrement) olarak adlandırılır. Eğer artırma ya da azaltma operatörleri değişkenden sonra yerleştirilirse, sırasıyla son artırma ( postincrement ) ya da son azaltma( postdecrement ) olarak adlandırılırlar. Ön artırma (ön azaltma) ile öncelikle değişkenin değeri bir arttırılır (azaltılır ) ve değişkenin yeni değeri, değişkenin içinde bulunduğu deyimde kullanılır. Son artırma (son azaltma) ile değişkenin o andaki değeri deyimde kullanıldıktan sonra değişkenin değeri bir arttırılır. ( azaltılır )
Şekil 3.13'te, ++ operatörü için ön artırma ve son artırma biçimleri incelenmiş ve aralarındaki fark gösterilmiştir. c değişkenine son artırma uygulanması, c değişkeninin değerinin printf ifadesi içinde kullanıldıktan sonra arttırılmasına sebep olmuştur. c değişkenine ön artırma uygulanması, c değişkeninin değerinin printf ifadesinden önce arttırılmasına ve yeni değerin printf ifadesi içinde kullanılmasına sebep olmuştur.
|
Operatör |
Örnek |
Açıklama |
|
++ |
++a |
a’yı bir arttır ve a’nın yeni değerini a’nın içinde bulunduğu deyimde kullan |
|
++ |
a++ |
a’nın değerini a’nın içinde bulunduğu deyimde kullan ve daha sonra a’yı bir arttır. |
|
-- |
--b |
b’yi bir azalt ve b’nin yeni değerini b’nin içinde bulunduğu deyimde kullan |
|
-- |
b-- |
b’nin değerini b’nin içinde bulunduğu deyimde kullan ve daha sonra b’yi bir azalt |
Şekil 3.12 Arttırma ve azaltma operatörleri
1 /* Şekil 3.13: fig03_13.c
2 Ön arttırma ve son artırma */
3 #include <stdio.h>
4
5 int main ( )
6 {
7 int c = 5;
8
9 printf( "%d\n", c );
10 printf( "%d\n", c++ ); /* Ön arttırma */
11 printf( "%d\n\n", c );
12
13 c = 5;
14 printf( "%d\n", c );
15 printf( "%d\n", ++c ); /* Son artırma */
16 printf( "%d\n", c );
17
18 return 0; /* Program başarılı bir şekilde sonlanmıştır */
19 }
5
5
65
6
6
Şekil 3.13 Ön arttırma ve son azaltma arasındaki fark
Program c'nin değerini ++ operatörü kullanılmadan önce ve sonra göstermektedir. Azaltma operatörü(--) benzer biçimde çalışmaktadır.
İyi programlama Alıştırmaları 3.10
Tekli operatörlerle, operandları arasında boşluk bırakılmamalıdır.
Şekil 3.10'daki 3 atama ifadesi
gecenler =gecenler+1;
kalanlar =kalanlar+1;
ogrenci =ogrenci+1;
Atama operatörleriyle
gecenler += 1;
kalanlar += 1;
ogrenci += 1;
Ön arttırma operatörleriyle
++gecenler;
++kalanlar ;
++ogrenci ;
Son arttırma operatörleriyle
gecenler++;
kalanlar++;
ogrenci++;
biçiminde yazılabilirdi. Eğer bir ifadede değişkenin kendisi artırılıyor ya da azaltılıyorsa ön artırma ya da son arttırmanın aynı etkiyi yaratacağını bilmek önemlidir. Ön arttırma ve son arttırma (benzer olarak ön azaltma ve son azaltma), yalnızca değişken daha geniş bir deyimin içinde yer alıyorsa farklı etkilere sahiptir.
Arttırma ve azaltma operatörlerinin operandları olarak yalnızca değişken isimleri kullanılabilir.
Genel Programlama Hataları 3.10
Artırma ve azaltma operatörlerini değişken isimleri yerine bir deyimle birlikte kullanmaya çalışmak.Örneğin, ++(x+1) yazmak bir yazım hatasıdır.
İyi Programlama Alıştırmaları 3.11
ANSI standardı, genellikle operatörün operandının hesaplama sırasını belirlememiştir.(Bu konudaki istisnaları 4.ünitede göreceğiz) Bu sebepten, programcı artırma ve azaltma operatörlerinin kullanıldığı ifadelerde belli bir değişkenin birden fazla kez arttırılması ya da azaltılmasından kaçınmalıdır.
Şekil 3.14'te, şu ana kadar gösterdiğimiz operatörlerin öncelik sıralarını ve işleme biçimlerini bulacaksınız. Operatörlerin önceliği yukarıdan aşağıya gidildikçe azalmaktadır. İkinci sütunda operatörlerin işleme biçimlerini bulacaksınız. Koşullu operatör ( ?: ), tekli arttırma ( ++ ) tekli azaltma ( -- ), artı ( + ), eksi ( - ) ve dönüşüm operatörleriyle =, +=, -=, *=, /=, %= atama operatörlerinin sağdan sola doğru işlediğine dikkat ediniz. Üçüncü sütun çeşitli operatör gruplarının isimlerini belirtmektedir.Şekil 3.14'teki diğer tüm operatörler soldan sağa doğru işlerler.
( ) soldan sağa parantez
++ -- + - (tip) sağdan sola tekli
* / % soldan sağa multiplicative
+ - soldan sağa additive
< <= > >= soldan sağa karşılaştırma
= = != soldan sağa eşitlik
?: sağdan sola koşullu
= += -= *= /= sağdan sola atama
Şekil 3.14 Şu ana kadar anlatılan operatörlerin öncelikleri
Bilinmesi Gerekli
Arduino

Arduino ile bilgisayar programlarınızı gerçek dünyaya taşıyabilirsiniz.
İlk Transistör

Bell laboratuvarlarında icat edilen ilk transistör







