सूचक
C प्रोग्रामिंग भाषा में, *p एक पॉइंटर में संग्रहीत मान का प्रतिनिधित्व करता है और p मान के पते का प्रतिनिधित्व करता है, जिसे पॉइंटर के रूप में संदर्भित किया जाता है।
कॉन्स्ट इंट* और int const* कहता है कि सूचक एक निरंतर int को इंगित कर सकता है और इस सूचक द्वारा इंगित int के मान को बदला नहीं जा सकता है। लेकिन हम पॉइंटर के मान को बदल सकते हैं क्योंकि यह स्थिर नहीं है और यह किसी अन्य स्थिरांक को इंगित कर सकता है।
const int* const कहता है कि सूचक एक निरंतर int को इंगित कर सकता है और इस सूचक द्वारा इंगित int के मान को बदला नहीं जा सकता है। और हम पॉइंटर के मान को भी नहीं बदल सकते हैं क्योंकि यह अब स्थिर है और यह किसी अन्य स्थिरांक को इंगित नहीं कर सकता है।
अंगूठे का नियम वाक्य रचना को दाएं से बाएं ओर नाम देना है।
// constant pointer to constant int const int * const // pointer to constant int const int *
उदाहरण (सी)
टिप्पणी किए गए गलत कोड को हटा दें और त्रुटि देखें।
#include <stdio.h> int main() { //Example: int const* //Note: int const* is same as const int* const int p = 5; // q is a pointer to const int int const* q = &p; //Invalid asssignment // value of p cannot be changed // error: assignment of read-only location '*q' //*q = 7; const int r = 7; //q can point to another const int q = &r; printf("%d", *q); //Example: int const* const int const* const s = &p; // Invalid asssignment // value of s cannot be changed // error: assignment of read-only location '*s' // *s = 7; // Invalid asssignment // s cannot be changed // error: assignment of read-only variable 's' // s = &r; return 0; }
आउटपुट
7