Operatör |
Sembolü |
Kullanılışı |
İşlem Sonucu |
---|---|---|---|
Cast |
(tip bildirisi) |
(tip bildirisi)X |
X’i belirtilen tip’e dönüştürür |
Daha önceki bölümde de anlattığımız gibi bu operatör yardımıyla bir ifadenin türü, belirtilen tipe dönüştürülür. Örneğin, 5/2 ifadesinin sonucunun, her iki operandın da int türünde olmasından dolayı 2 olacağını biliyoruz. Oysa (float)5/2 sonucu 2.5 olacaktır.
Burada cast operatörünün önceliğinin aritmetik işlemlerden daha yüksek olduğunu hatırlarsak (bkz. Operatörlerin Öncelikleri ve Birleşme Sıraları) bu ifadenin, ((float)5)/2 şeklinde yorumlanacağını kolayca anlayabiliriz.
Cast operatörünün başka bir kullanım alanı da, fonksiyon argümanlarını istenilen türe dönüştürmektir. Aşağıdaki örneği inceleyelim.
#include <math.h>
#include <stdlib.h>
#import <Foundation/Foundation.h>
#include <math.h>
int main(int argc, char* argv[])
{
int i;
long int k;
NSLog(@"\ni \t\t\t2^i\n");
for (i=0; i<=15; i++) {
k=pow(2.0,(double)i);
NSLog(@"%5i\t\t %15lu\n",i,k);
}
exit(0);
}
PROGRAMIN ÇIKTISI:
Bu programda, üs alma amacı ile kullanılan pow(a,b) fonksiyonu argüman olarak double türde değişken istediği için (double) i ifadesi ile i argümanı, cast operatörü yardımı ile double’a çevrilmiştir. pow(a,b) fonksiyonunun ab‘yi hesapladığını bir kez daha hatırlatalım.