आप फ़ंक्शन में पॉइंटर्स कैसे स्विच करते हैं?सी प्रोग्रामिंग भाषा में एक फ़ंक्शन में स्विच पॉइंटर्स
void ChangePointers(int *p_intP1, int *p_intP2);
int main() {
int i = 100, j = 500;
int *intP1, *intP2; /* pointers */
intP1 = &i;
intP2 = &j;
printf("%d\n", *intP1); /* prints 100 (i) */
printf("%d\n", *intP2); /* prints 500 (j) */
ChangePointers(intP1, intP2);
printf("%d\n", *intP1); /* still prints 100, would like it swapped by now */
printf("%d\n", *intP2); /* still prints 500 would like it swapped by now */
}/* end main */
void ChangePointers(int *p_intP1, int *p_intP2) {
int *l_intP3; /* local for swap */
l_intP3 = p_intP2;
p_intP2 = p_intP1;
p_intP1= l_intP3;
}
सी में, * सब कुछ * मूल्य से पारित किया जाता है। यदि आप किसी फ़ंक्शन को कुछ बदलना चाहते हैं, तो आपको इसके लिए एक पॉइंटर पास करना होगा। इसलिए, यदि आप एक सूचक को एक सूचक बदलने के लिए चाहते हैं, तो आपको इसके लिए एक सूचक पास करने की आवश्यकता है। यानी, पॉइंटर को पॉइंटर पास करें। एक बार जब आप इस तरह सोचना शुरू कर देते हैं, तो सब कुछ आसान हो जाता है (ठीक है, सब कुछ नहीं, लेकिन कम से कम फ़ंक्शन-कॉलिंग!) –