Warning: Undefined array key "HTTP_ACCEPT_LANGUAGE" in /var/www/vhosts/bilgigunlugum.net/httpdocs/index.php on line 43
C Programlama

BG MVC Model View Controller eğitim serisi yayında...

Ana sayfa > Programlama > C Programlama > C örnek kodlar > pass_array_to_func_nodeclare

C örnek kodlar

Bir değişken olarak tanımlamadan bir diziyi fonksiyona parametre olarak geçirme

C99 standartları ile C Programlama Dili'ne eklenen Compound literal (Bileşik veya çoklu sabitler) özelliği ile, herhangi bir veri türünden birden fazla sabiti bir değişken adı kullanmadan bir fonksiyona parametre olarak geçirebiliriz.

Aşağıdaki örnekte, int veri türünden 5 elemanlı bir bileşik sabitin kullanılması gösterilmektedir:


#include <stdio.h>

void fonk(int idizi[], int len);

int main(void)
{
  // int idizi[] = {4,7,21,75,52};
  // fonk(idizi, 5);
  fonk((int []){4,7,21,75,52}, 5); // Yukarıdaki 2 satırın yaptığı işlemin aynısını gerçekleştirir.

  return 0;
}

void fonk(int idizi[], int len)
{
  int id;

  for (id=0; id<len; id++) printf("%d ", idizi[id]);
}


Yukarıdaki programı derleyip çalıştırdığımızda, aşağıdaki ifadeleri ekrana yazar:

4 7 21 75 52

Program, 5 elemanlı int bir bileşik sabiti bir fonksiyona parametre olarak geçirir. Fonksiyon içinde, bir for döngüsü ile bileşik sabit eleman değerlerini ekrana yazar.

Aşağıdaki program aynı işlemi işaretçi kullanarak gerçekleştirir:


#include <stdio.h>

void fonk(int idizi[], int len);

int main(void)
{
  int *p = (int []){4,7,21,75,52};
  
  fonk(p, 5);

  return 0;
}

void fonk(int idizi[], int len)
{
  int id;

  for (id=0; id<len; id++) printf("%d ", idizi[id]);
}