अ‍ॅरे आणि पॉइंटर दरम्यान फरक

लेखक: Laura McKinney
निर्मितीची तारीख: 1 एप्रिल 2021
अद्यतन तारीख: 15 मे 2024
Anonim
C मधील अॅरे आणि पॉइंटरमधील फरक
व्हिडिओ: C मधील अॅरे आणि पॉइंटरमधील फरक

सामग्री


अ‍ॅरे आणि पॉईंटर मध्ये जवळचे नाते आहे. अ‍ॅरे घटकांमध्ये प्रवेश करण्यासाठी पॉईंटरचा वापर केला जाऊ शकतो, पॉईंटर अंकगणित वापरून संपूर्ण अ‍ॅरेमध्ये प्रवेश करणे, प्रवेश जलद बनविते. पॉईंटर आणि अ‍ॅरे मध्ये मूलभूत फरक आहे, म्हणजे अ‍ॅरे समान डेटा प्रकारांच्या व्हेरिएबल्सचा संग्रह आहे तर पॉईंटर एक व्हेरिएबल आहे जो दुसर्या व्हेरिएबलचा पत्ता संग्रहित करतो. अ‍ॅरे आणि पॉईंटर दरम्यान इतर काही फरक आहेत जे तुलना चार्टमध्ये खाली चर्चा आहेत.

  1. तुलना चार्ट
  2. व्याख्या
  3. मुख्य फरक
  4. निष्कर्ष

तुलना चार्ट

तुलनासाठी आधारअ‍ॅरेपॉईंटर
घोषणा// सी ++ मध्ये
प्रकार_र_नाव;
// जावा मध्ये.
प्रकार var-name;
var_name = नवीन प्रकार;
// सी ++ मध्ये
प्रकार * var_name;
कार्यरतएकसमान डेटाटाइपच्या चलचे मूल्य संचयित करते.पॉईंटर व्हेरिएबल्स डेटाटाइप प्रमाणेच दुसर्‍या व्हेरिएबलचा पत्ता स्टोअर करा.
पिढीपॉईंटर्सचा अ‍ॅरे व्युत्पन्न केला जाऊ शकतो.अ‍ॅरेचे एक पॉईंटर व्युत्पन्न केले जाऊ शकते.
जावा समर्थनअ‍ॅरेच्या संकल्पनेचे समर्थन करा.पॉईंटर्सना समर्थन देत नाही.
साठवणसामान्य अ‍ॅरे व्हेरिएबलची व्हॅल्यूज संचयित करते आणि पॉईंटर अ‍ॅरे व्हेरिएबल्सचा पत्ता संग्रहित करते.व्हेरिएबल्सचा पत्ता संग्रहित करण्यासाठी पॉईंटर्स खास डिझाइन केलेले आहेत.
क्षमताअ‍ॅरे व्हेरिएबलच्या आकारात नमूद केलेल्या घटकांची संख्या संग्रहित करू शकते. पॉईंटर व्हेरिएबल एका वेळी फक्त एकाच व्हेरिएबलचा पत्ता संचयित करू शकतो.


अ‍ॅरेची व्याख्या

अ‍ॅरे हा समान डेटाटाइपच्या घटकांचा संग्रह आहे आणि या सर्व घटकांना सामान्य नावाने संदर्भित केले जाते, जे अ‍ॅरे व्हेरिएबलचे नाव आहे. घटक संग्रहित असलेल्या त्या अ‍ॅरेच्या विशिष्ट निर्देशांकात प्रवेश करून विशिष्ट अ‍ॅरे घटकात प्रवेश केला जाऊ शकतो. अ‍ॅरे एक-आयामी अ‍ॅरे, द्विमितीय अ‍ॅरे किंवा बहु-आयामी अ‍ॅरे असू शकतात. पॉईंटर्सचा अ‍ॅरे देखील व्युत्पन्न केला जाऊ शकतो म्हणजे पॉईंटर व्हेरिएबल म्हणून सर्व व्हेरिएबल असलेले अ‍ॅरे. ‘सी ++’ मध्ये अ‍ॅरे स्थिरपणे वाटप करण्यात आले आहेत तर, ‘जावा’ मध्ये अ‍ॅरे गतिकरित्या वाटप करण्यात आले आहेत.

// सी ++ मध्ये प्रकार_नाम टाइप करा; // जावा मध्ये. प्रकार var-name; var_name = नवीन प्रकार;

येथे 'टाईप' अ‍ॅरे व्हेरिएबलचा डेटा प्रकार दर्शवितो, 'व्हेर नेम' अ‍ॅरे व्हेरिएबलला दिलेले नाव दर्शवितो, 'साइज' अ‍ॅरे व्हेरिएबलची क्षमता दर्शवते म्हणजे 'अ‍ॅरे टाइप' चे किती घटक त्या arरे व्हेरिएबलमधे संचित केले जाऊ शकतात. . अ‍ॅरेमध्ये प्रवेश करण्याच्या दोन पद्धती आहेत, पहिली ‘पॉईंटर अंकगणित’ आणि दुसरी ‘अ‍ॅरे इंडेक्सिंग’, त्यातील ‘पॉईंटर अंकगणित’ वेगवान आहे.


// पॉईंटर अंकगणित वापरुन प्रवेश करणे शून्य डिस्प्ले_अरे (इंट * एस) {करताना (* एस) out कोउट (<< "मूल्य" << * एस) आहे; * एस ++; }}

‘पॉईंटर अंकगणित’ वापरणे ‘अ‍ॅरे इंडेक्सिंग’ च्या तुलनेत अधिक वेगाने कार्य करेल, म्हणजेच निर्देशांक वापरून अ‍ॅरे व्हेरिएबलमध्ये प्रवेश करणे. जर आपल्याला एखाद्या फंक्शनमध्ये पॉईंटर्सचा अ‍ॅरे पास करण्याची आवश्यकता असेल तर आपण सामान्य अ‍ॅरे पास करण्यासाठी वापरत असलेली समान पद्धत वापरुन केली जाऊ शकते म्हणजे कोणत्याही अनुक्रमणिकेशिवाय अ‍ॅरेच्या नावाने फंक्शनला थेट कॉल करा.

त्यास उदाहरणासह समजू या

// पॉईंटर्सचा अ‍ॅरे घोषित करणे. इंट * पी;

येथे हे दर्शविते की ‘p’ पूर्णांक प्रकारांची अ‍ॅरे आहे, यात पूर्णांक प्रकाराच्या 10 चलांचा पत्ता असेल. वरील पॉईंटर अ‍ॅरे फंक्शन डिस्प्ले () मध्ये पास करू.

प्रदर्शन (पी); // फंक्शन डिस्प्लेवर कॉल करा. शून्य प्रदर्शन (इंट * डी) {// पॉईंटर अ‍ॅरे प्राप्त करणारे कार्य. साठी (इंट i = 0; i <10; i ++) out कोउट << ("अनुक्रमणिका" <

हे फंक्शन व्हेरिएबल्समधे उपस्थित व्हॅल्यूज दाखवेल, ज्यांचे पत्ते या पॉईंटर अ‍ॅरे मध्ये अनुक्रमे साठवले आहेत.

पॉईंटर ची व्याख्या

पॉईंटर हे एक व्हेरिएबल आहे ज्यामध्ये दुसर्या व्हेरिएबलचा मेमरी पत्ता असतो. दोहोंचा डेटाटाइप, पॉईंटर व्हेरिएबल आणि व्हेरिएबल ज्याचा पत्ता पॉईंटर व्हेरिएबलला नियुक्त केला गेला आहे, समान असणे आवश्यक आहे. पॉईंटर व्हेरिएबल खालीलप्रमाणे घोषित केला आहे.

// सी ++ प्रकार * नावाची घोषणा;

येथे ‘प्रकार’ हा डेटाटाइप आहे, ’’ नाव ’’ हे पॉईंटर व्हेरिएबलचे नाव आहे. कोणत्या प्रकारचे व्हेरिएबलचा पत्ता पॉईंटर व्हेरिएबलमध्ये संग्रहित केला जाऊ शकतो हे ‘प्रकार’ परिभाषित करते. उदाहरणार्थ, पूर्णांक पॉईंटर पूर्णांक व्हेरिएबलचा पत्ता संग्रहित करेल. तेथे दोन पॉईंटर ऑपरेटर आहेत * * ’आणि‘ & ’. ऑपरेटर ‘*’ पत्त्यावर असलेली व्हॅल्यू परत करतो, जो व्हेरिएबलमधे संचयित होतो त्यानंतर ‘*’ चिन्हाद्वारे. ‘आणि’ ऑपरेटर व्हेरिएबलचा पत्ता ’आणि’ चिन्हानंतर परत करतो.

// उदाहरणार्थ इंट बी = 10 इंट अ = & बी; // येथे b चा अ‍ॅड्रेस व्हेरिएबल मध्ये संचित आहे. // आपल्याला बीचा पत्ता 2000 आहे, तर आता अ = 2000. इंट सी = * ए; // येथे, पूर्णांक पॉईंटर व्हेरिएबल * a हे .ie मध्ये संग्रहित पत्त्यावर स्थित मूल्य परत करेल. c = 10.

केवळ दोन अंकगणित ऑपरेटर आहेत जे आपण पॉईंटर्सवर वापरू शकता म्हणजेच व्यतिरिक्त आणि वजाबाकी. जर आपण इंटिजर पॉईंटर व्हेरिएबलवर व्हेरिमेंट लागू केले तर डेटाटाइपच्या आकाराने म्हणजेच दोन बाइट्सने वाढ केली जाईल कारण इंटिजर पॉईंटर असल्यामुळे व्हेरिएममेंटवर पुढील इंटिजर व्हेरिएबल दाखवावे लागेल. घट ही बाबही अशीच आहे.

// पी एक पूर्णांक पॉइंटर आहे जो 2000 क्रमांकाचे मूल्य आहे. पी ++; // आता पी = 2002. p--; // आता पी मध्ये पुन्हा 2000 आहेत ज्यात दोन बाइटने घट केली आहे.

  1. अ‍ॅरे समान डेटा प्रकारांचे व्हेरिएबल्स संचयित करते आणि व्हेरिएबल्सचा डेटा प्रकार अ‍ॅरेच्या प्रकाराशी जुळला पाहिजे. दुसरीकडे, पॉईंटर व्हेरिएबल, व्हेरिएबलचा पत्ता, पॉईंटर व्हेरिएबल प्रकाराच्या प्रकारासारखा असतो.
  2. आपण पॉइंटर्स म्हणजेच अ‍ॅरे ज्याचे व्हेरिएबल्स पॉईंटर व्हेरिएबल्स असतात ते तयार करू शकतो. दुसरीकडे, आपण अ‍ॅरेकडे निर्देशित करणारा पॉईंटर तयार करू शकतो.
  3. जावा अ‍ॅरेला समर्थन देते, परंतु ते पॉइंटर्सना समर्थन देत नाही.
  4. Sizeरेचा आकार तो संचयित करू शकत असलेल्या व्हेरिएबल्सची संख्या ठरवितो; पॉईंटर व्हेरिएबल केवळ व्हेरिएबलचा पत्ता साठवू शकतो

टीपः

जावा पॉइंटर्सना समर्थन देत नाही किंवा काटेकोरपणे टाळत नाही.

निष्कर्ष:

जेव्हा आपल्याला तत्सम डेटा प्रकाराच्या डेटा घटकांवर कार्य करण्याची आवश्यकता असते, त्याऐवजी, व्हेरिएबल्सवर स्वतंत्रपणे कार्य करण्याऐवजी, आम्ही समान डेटा प्रकारांच्या त्या व्हेरिएबल्सची एक अ‍ॅरे तयार करू आणि नंतर त्यास ऑपरेट करू. काही प्रोग्रामसाठी पॉईंटर्स आवश्यक असतात, ते प्रचंड शक्ती देते, परंतु दुर्दैवाने, जर पॉईंटरमध्ये चुकीचे मूल्य असेल तर ते शोधणे सर्वात कठीण बग असेल.