C void Göstericiler
Türden
bağımsız işlem yapmayı sağlayan void göstericiler(void *) nasıl
kullanılır?
void
göstericilerde dikkat edilecek noktalar nelerdir?
void
göstericiler ile adres(&) ve içerik(*) operatörleri kullanılmaz.
void
gösterciler ile toplama yapılamaz.
void
göstericiler ile çıkartma yapılamaz.
Uygulamada
ilk süslü parantezde void göstericiye herhangi bir türden göstericinin atanması.
ikinci
süslü parantezde dikkat edilecek noktalar.
üçüncü
süslü paranetzde aritmetik toplama
dördüncü
süslü parantezde adres çıkarma işlemi anlatılmıştır.
/*Türden
bağımsız işlem yapmayı sağlayan void göstericiler(void *) nasıl kullanılır?
void
göstericilerde dikkat edilecek noktalar nelerdir?
void
göstericiler ile adres(&) ve içerik(*) operatörleri kullanılmaz.
void
gösterciler ile toplama yapılamaz.
void
göstericiler ile çıkartma yapılamaz.
Uygulamada
ilk süslü parantezde void göstericiye herhangi bir türden göstericinin
atanması.
ikinci
süslü parantezde dikkat edilecek noktalar.
üçüncü
süslü paranetzde aritmetik toplama
dördüncü
süslü parantezde adres çıkarma işlemi anlatılmıştır.*/
#include <stdio.h>
#include <stdlib.h>
int main(void) {
//void türünden göstericiler
//türden bağımsız işlem yapmak
{
char name[] =
"fikret";
void *ptr =
name; //geçerli
int *ptr1 =
ptr; //geçerli
}
// void göstericisi dikkat
edilecek noktalar
{
int
number[100]; //int *
void *ptr =
number;
number[0] = 1;
*number = 2;
number[10] = 12;
ptr[0] = 2;
*ptr = 3;
}
//void göstericileri le
aritmetik toplama yapılmaz.
// void göstericiler sadece
adresin sayısal değerini tutar.
{
int
number[10];
void *ptr =
number;
*number = 1;
//
number'in adresi 0x100 (number + 1) =
0x104
*(number + 1) = 2;
ptr = ptr + 1; //yanlis
}
//void gösterciler ile çıkartma
{
int
number[10];
void *ptr =
number;
// 40
byte değildir. sonuc 10 = 40 / sizeof(int)
//number
= 0x100 number[1] = 0x104
int eleman =
(&number[1]) - (&number[0]);
printf("eleman:
%d\n", eleman);
//number[9]
= *(number + 9)
int eleman1
= (&ptr[9]) - (&ptr[0]);
printf("eleman1:
%d\n", eleman1);
}
// geri dönüş void * olabilir.
// parametre olarak void *
kullanilabilir
return
EXIT_SUCCESS;
}
//
void *func(void *pr1, void *pr2)
{
void *ptr;
return ptr;
}
Hiç yorum yok:
Yorum Gönder