Bu ikisinin arasındaki temel farklar nelerdir acaba? Ben bir şeyler anladım fakat karman çorman oldu. yardımcı olabilecek birileri varsa çok sevinirim.
#include <stdio.h>
int *foo(int); // Altta tanimlanan foo fonksyonunun prototoipi yapildi boylece fonksyon altta olmasina ragmen main'de kullanabilecegiz.
int main()
{
foo(20);
return 0;
}
int *foo(int a)
{
printf("a'nin degeri: %d", a);
return 0;
}
Çıktısı:
Kod:
a'nin degeri: 20
Bu da "int (*foo)(int)" için:
C:
#include <stdio.h>
int HelloWorld(int a)
{
printf("Hello World a'nin degeri: %d\n", a);
return 0;
}
int main()
{
int (*foo)(int); // int donen ve int bir parametreye sahip fonksyonun gostericisi
foo = HelloWorld; // HelloWorld'un adresini foo'ya atadik boylece artik foo ile HelloWorld'u cagirmamiz ayni anlama gelecek.
foo(10);
HelloWorld(20);
return 0;
}
Çıktısı:
Kod:
Hello World a'nin degeri: 10
Hello World a'nin degeri: 20
int * foo(int) dediğimiz int pointer dönen, int bir parametreye sahip bir fonksyon prototipi.
int (*foo)(int) ise int dönen ve bir int parametresine sahip bir fonksyon göstericisidir, bu göstericiye kendisiyle aynı tipe sahip bir fonksyonu atayıp kullanabilirsin.
int * foo(int) dediğimiz int pointer dönen, int bir parametreye sahip bir fonksyon prototipi.
int (*foo)(int) ise int dönen ve bir int parametresine sahip bir fonksyon göstericisidir, bu göstericiye kendisiyle aynı tipe sahip bir fonksyonu atayıp kullanabilirsin.
#include <stdio.h>
int *foo(int); // Altta tanimlanan foo fonksyonunun prototoipi yapildi boylece fonksyon altta olmasina ragmen main'de kullanabilecegiz.
int main()
{
foo(20);
return 0;
}
int *foo(int a)
{
printf("a'nin degeri: %d", a);
return 0;
}
Çıktısı:
Kod:
a'nin degeri: 20
Bu da "int (*foo)(int)" için:
C:
#include <stdio.h>
int HelloWorld(int a)
{
printf("Hello World a'nin degeri: %d\n", a);
return 0;
}
int main()
{
int (*foo)(int); // int donen ve int bir parametreye sahip fonksyonun gostericisi
foo = HelloWorld; // HelloWorld'un adresini foo'ya atadik boylece artik foo ile HelloWorld'u cagirmamiz ayni anlama gelecek.
foo(10);
HelloWorld(20);
return 0;
}
Çıktısı:
Kod:
Hello World a'nin degeri: 10
Hello World a'nin degeri: 20
#include <stdio.h>
int *foo(int); // Altta tanimlanan foo fonksyonunun prototoipi yapildi boylece fonksyon altta olmasina ragmen main'de kullanabilecegiz.
int main()
{
foo(20);
return 0;
}
int *foo(int a)
{
printf("a'nin degeri: %d", a);
return 0;
}
Çıktısı:
Kod:
a'nin degeri: 20
Bu da "int (*foo)(int)" için:
C:
#include <stdio.h>
int HelloWorld(int a)
{
printf("Hello World a'nin degeri: %d\n", a);
return 0;
}
int main()
{
int (*foo)(int); // int donen ve int bir parametreye sahip fonksyonun gostericisi
foo = HelloWorld; // HelloWorld'un adresini foo'ya atadik boylece artik foo ile HelloWorld'u cagirmamiz ayni anlama gelecek.
foo(10);
HelloWorld(20);
return 0;
}
Çıktısı:
Kod:
Hello World a'nin degeri: 10
Hello World a'nin degeri: 20