- Κώδικας: Επιλογή όλων
#include<stdio.h>
int func( int sum );
int main(void)
{
int sum=0 , r ;
int (*p)(int sum) = NULL ;
p = &func;
r= (*p)(sum);
printf("%d", r );
printf("%p %p" , p , &func );
return 0;
}
int func(int sum)
{
int a , b;
puts("Give a number: ");
scanf("%d" , &a);
puts("Give a number: ");
scanf("%d", &b);
sum= a+b ;
return sum;
}
δηλαδη το (*p)(sum) ειναι ο δείκτης της συνάρτησης που έχει την τιμή της διεύθυνσης μνήμης? δεν μπορω να καταλαβω 100% ας πουμε.
Δινω σε εναν δεικτη την διευθυνση μνημης μιας συνάρτησης απο εκει και επειτα το αποτελεσμα που θα επιστρέψει η συνάρτηση μπορω να
το εμφανίσω με την απο-αναφοροποίηση ?
btw το
- Κώδικας: Επιλογή όλων
int (*p)(int sum) = NULL ;
p = &func;
μπορεί απευθείας να αντικατασταθεί απο το
- Κώδικας: Επιλογή όλων
int (*p)(int sum) = &func ;
εκείνο που μπέρδευα το καλοκαίρι και σε ρωτούσα ηταν το initialization με το assignment στους δεικτες
δεν έχει σημασια το συμβολο μιας και ειναι 2 ξεχωριστα πραγματα... και τα χειριζεται διαφορετικα η γλωσσα.
Με την ιδια λογικη που το / μπορει να χρησιμοποιηθει σαν συμβολο για τα σχολια αλλα και για την διαιρεση.



