उद्देश्य-सी अर्र्स

ऑब्जेक्टिव-सी प्रोग्रामिंग भाषा एक डेटा संरचना प्रदान करती है जिसे कहा जाता है the array, जो एक ही प्रकार के तत्वों के एक निश्चित आकार के अनुक्रमिक संग्रह को संग्रहीत कर सकते हैं। एक सरणी का उपयोग डेटा के संग्रह को संग्रहीत करने के लिए किया जाता है, लेकिन एक सरणी के समान प्रकार के संग्रह के रूप में सरणी के बारे में सोचना अक्सर अधिक उपयोगी होता है।

नंबर चर, नंबर 1, ... और नंबर 99 जैसे अलग-अलग चर घोषित करने के बजाय, आप एक सरणी चर जैसे संख्याओं की घोषणा करते हैं और संख्याओं का उपयोग करते हैं [0], संख्याओं [1] और ..., संख्याओं [99] का प्रतिनिधित्व करने के लिए। अलग-अलग चर। एक सरणी में एक विशिष्ट तत्व एक सूचकांक द्वारा पहुँचा जाता है।

सभी सरणियों में सन्निहित स्मृति स्थान शामिल हैं। निम्नतम पता पहले तत्व से मेल खाता है और अंतिम तत्व से उच्चतम पता।

घोषणाएँ

उद्देश्य-सी में एक सरणी घोषित करने के लिए, एक प्रोग्रामर तत्वों के प्रकार और किसी सरणी द्वारा आवश्यक तत्वों की संख्या को निर्दिष्ट करता है:

type arrayName [ arraySize ];

इसे एकल-आयामी सरणी कहा जाता है । arraySize शून्य से अधिक पूर्णांक स्थिरांक होना चाहिए और typeकोई भी मान्य उद्देश्य-सी डेटा प्रकार हो सकता है। उदाहरण के लिए, 10-तत्व सरणी घोषित करने के लिएbalance प्रकार के दोहरे, इस कथन का उपयोग करें -

double balance[10];

अब, संतुलन एक चर सरणी है, जो 10 डबल संख्या तक पकड़ के लिए पर्याप्त है।

आरंभिक सारणी

आप उद्देश्य-सी में एक सारणी को एक-एक करके या एक कथन का उपयोग करके इस प्रकार शुरू कर सकते हैं -

double balance[5] = {1000.0, 2.0, 3.4, 17.0, 50.0};

ब्रेसिज़ {} के बीच मानों की संख्या उन तत्वों की संख्या से अधिक नहीं हो सकती है जिन्हें हम वर्ग कोष्ठक [] के बीच के सरणी के लिए घोषित करते हैं। निम्नलिखित सरणी के एकल तत्व को निर्दिष्ट करने के लिए एक उदाहरण है -

यदि आप सरणी के आकार को छोड़ देते हैं, तो आरंभीकरण धारण करने के लिए सिर्फ एक सरणी काफी बड़ी है। इसलिए, यदि आप लिखते हैं -

double balance[] = {1000.0, 2.0, 3.4, 17.0, 50.0};

आप बिलकुल वही एरे बनाएंगे जैसा आपने पिछले उदाहरण में किया था।

balance[4] = 50.0;

उपरोक्त कथन सरणी में तत्व संख्या 5 को 50.0 का मान प्रदान करता है। 4 वें इंडेक्स के साथ ऐरे 5 वें अर्थात अंतिम तत्व होगा क्योंकि सभी सरणियों में उनके पहले तत्व के इंडेक्स के रूप में 0 होता है जिसे बेस इंडेक्स भी कहा जाता है। ऊपर हमने जिस सरणी पर चर्चा की है, उसी चित्र का प्रतिनिधित्व निम्नलिखित है -

ऐरे तत्वों तक पहुँचना

सरणी नाम अनुक्रमित करके एक तत्व को एक्सेस किया जाता है। यह सरणी के नाम के बाद वर्ग ब्रैकेट के भीतर तत्व के सूचकांक को रखकर किया जाता है। उदाहरण के लिए -

double salary = balance[9];

उपरोक्त कथन सरणी से 10 वां तत्व लेगा और मान को वेतन चर में निर्दिष्ट करेगा। निम्नलिखित एक उदाहरण है, जो उपरोक्त सभी तीन अवधारणाओं का उपयोग करेगा। घोषणा, असाइनमेंट और पहुँच सरणियाँ -

#import <Foundation/Foundation.h>
 
int main () {
   int n[ 10 ];   /* n is an array of 10 integers */
   int i,j;
 
   /* initialize elements of array n to 0 */         
   for ( i = 0; i < 10; i++ ) {
      n[ i ] = i + 100;    /* set element at location i to i + 100 */
   }
   
   /* output each array element's value */
   for (j = 0; j < 10; j++ ) {
      NSLog(@"Element[%d] = %d\n", j, n[j] );
   }
 
   return 0;
}

जब उपरोक्त कोड संकलित और निष्पादित किया जाता है, तो यह निम्नलिखित परिणाम उत्पन्न करता है -

2013-09-14 01:24:06.669 demo[16508] Element[0] = 100
2013-09-14 01:24:06.669 demo[16508] Element[1] = 101
2013-09-14 01:24:06.669 demo[16508] Element[2] = 102
2013-09-14 01:24:06.669 demo[16508] Element[3] = 103
2013-09-14 01:24:06.669 demo[16508] Element[4] = 104
2013-09-14 01:24:06.669 demo[16508] Element[5] = 105
2013-09-14 01:24:06.669 demo[16508] Element[6] = 106
2013-09-14 01:24:06.669 demo[16508] Element[7] = 107
2013-09-14 01:24:06.669 demo[16508] Element[8] = 108
2013-09-14 01:24:06.669 demo[16508] Element[9] = 109

उद्देश्य-सी विवरण में विस्तार से दिया गया है

उद्देश्य-सी के लिए सारणी महत्वपूर्ण हैं और बहुत अधिक विवरणों की आवश्यकता है। सरणी से संबंधित कुछ महत्वपूर्ण अवधारणाएँ निम्नलिखित हैं, जो एक उद्देश्य-सी प्रोग्रामर के लिए स्पष्ट होनी चाहिए -

अनु क्रमांक। अवधारणा और विवरण
1 बहुआयामी सरणियाँ

उद्देश्य-सी बहुआयामी सरणियों का समर्थन करता है। बहुआयामी सरणी का सबसे सरल रूप द्वि-आयामी सरणी है।

2 कार्यों के लिए सरणियाँ पासिंग

आप एक इंडेक्स के बिना सरणी के नाम को निर्दिष्ट करके एक सरणी के लिए फ़ंक्शन को एक पॉइंटर पास कर सकते हैं।

3 किसी फ़ंक्शन से सरणी लौटाएं

उद्देश्य-सी एक फ़ंक्शन को एक सरणी वापस करने की अनुमति देता है।

4 एक सरणी के लिए सूचक

आप किसी भी इंडेक्स के बिना, केवल ऐरे नाम को निर्दिष्ट करके सरणी के पहले तत्व के लिए एक पॉइंटर उत्पन्न कर सकते हैं।