Δημοσιεύτηκε: 08 Φεβ 2012, 02:31
Βασικα να ρωτήσω και εγω κάτι μεμονομένα?
δηλαδη το (*p)(sum) ειναι ο δείκτης της συνάρτησης που έχει την τιμή της διεύθυνσης μνήμης? δεν μπορω να καταλαβω 100% ας πουμε.
Δινω σε εναν δεικτη την διευθυνση μνημης μιας συνάρτησης απο εκει και επειτα το αποτελεσμα που θα επιστρέψει η συνάρτηση μπορω να
το εμφανίσω με την απο-αναφοροποίηση ?
btw το
μπορεί απευθείας να αντικατασταθεί απο το
εκείνο που μπέρδευα το καλοκαίρι και σε ρωτούσα ηταν το initialization με το assignment στους δεικτες
δεν έχει σημασια το συμβολο μιας και ειναι 2 ξεχωριστα πραγματα... και τα χειριζεται διαφορετικα η γλωσσα.
Με την ιδια λογικη που το / μπορει να χρησιμοποιηθει σαν συμβολο για τα σχολια αλλα και για την διαιρεση.
- Κώδικας: Επιλογή όλων
#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 ξεχωριστα πραγματα... και τα χειριζεται διαφορετικα η γλωσσα.
Με την ιδια λογικη που το / μπορει να χρησιμοποιηθει σαν συμβολο για τα σχολια αλλα και για την διαιρεση.