संभव डुप्लिकेट:
How does dereferencing of a function pointer happen?समारोह सूचक - स्वचालित अपसंदर्भन
void myprint(char* x) {
printf("%s\n", x);
}
int main() {
char* s = "hello";
void (*test)(char*);
void (*test2)(char*);
test = myprint;
test2 = &myprint;
test(s);
(*test)(s);
test2(s);
(*test2)(s);
}
किसी को भी मेरे लिए व्याख्या कर सकते हैं क्यों उपरोक्त कोड के सभी मान्य है? "हैलो" चार बार मुद्रित है। फ़ंक्शन पॉइंटर को लागू करके, क्या यह पूरी तरह से खराब हो गया है? असल में मैं जानना चाहता हूं कि फ़ंक्शन पॉइंटर्स वास्तव में कैसे संग्रहीत होते हैं, क्योंकि उपर्युक्त भ्रमित है।
'(****** परीक्षण) (ओं)' भी मान्य है :-) – sidyll
इस पिछले प्रश्न को देखें: http://stackoverflow.com/questions/2795575/how-does-Dereferencing-of-a -फंक्शन-पॉइंटर-हो –
कार्य और फ़ंक्शन पॉइंटर्स विशेष हैं, उनके उपचार किसी अन्य प्रकार के पॉइंटर के साथ वर्दी में नहीं हैं। देखें [फ़ंक्शन पॉइंटर का डिफ्रेंसिंग कैसे होता है?] (Http://stackoverflow.com/q/2795575/2509) और साइडबार में अन्य प्रश्न। – dmckee