C90 मानक में हमें निश्चित क्रम में सरणियों को इनिशियलाइज़ करना होता है, जैसे कि इनिशियलाइज़ इंडेक्स 0, 1, 2 और इसी तरह। सी 99 मानक से, उन्होंने सी में निर्दिष्ट प्रारंभिक सुविधा पेश की है। यहां हम यादृच्छिक क्रम में तत्वों को प्रारंभ कर सकते हैं। सरणी अनुक्रमणिका या संरचना सदस्यों का उपयोग करके आरंभीकरण किया जा सकता है। यह एक्सटेंशन GNU C++ में लागू नहीं किया गया है।
अगर हम कुछ इंडेक्स निर्दिष्ट करते हैं और कुछ मूल्य डालते हैं, तो यह इस तरह दिखेगा -
int arr[6] = {[3] = 20, [5] = 40}; or int arr[6] = {[3]20, [5]40};
यह इसके बराबर है:
int arr[6] = {0, 0, 0, 20, 0, 40};
हम इस सिंटैक्स का उपयोग करके तत्वों की कुछ श्रेणी भी रख सकते हैं:[प्रथम ... अंतिम] =मान।
int arr[6] = {[2 … 4] = 10};
यह इसके बराबर है:
int arr[6] = {0, 0, 10, 10, 10, 0};
यदि सरणी का आकार परिभाषित नहीं है, तो यह अधिकतम सूचकांक स्थिति से आकार प्राप्त कर सकता है। आइए बेहतर विचार प्राप्त करने के लिए कोड देखें।
उदाहरण कोड
#include <stdio.h> int main() { int Array[] = {10, 20, 30, [3 ... 9] = 100, [10] = 65, 15, [80] = 50, [42] = 400 }; int i; for (i = 0; i < 20; i++) printf("%d ", Array[i]); printf("\nArray[%d] = %d\n",80, Array[80]); printf("Array[%d] = %d\n",42, Array[42]); printf("Size of this array: %ld\n", sizeof(Array) / sizeof(Array[0])); }
आउटपुट
10 20 30 100 100 100 100 100 100 100 65 15 0 0 0 0 0 0 0 0 Array[80] = 50 Array[42] = 400 Size of this array: 81
यह निर्दिष्ट आरंभीकरण संरचना या संघ प्रकार की वस्तुओं के लिए भी किया जा सकता है। उनके लिए हम किसी भी क्रम में शुरुआत में एक बिंदु (.) के साथ सदस्य चर के नाम का उपयोग करके वेरिएबल्स को इनिशियलाइज़ कर सकते हैं। स्पष्ट विचार प्राप्त करने के लिए, कृपया नीचे दिए गए कोड की जांच करें।
उदाहरण कोड
#include <stdio.h> struct myStruct { int x; float y; char z; }; int main() { struct myStruct str1 = {.y = 2.324, .z = 'f', .x = 78}; struct myStruct str2 = {.z = 'r'}; printf ("x = %d, y = %f, z = %c\n", str1.x, str1.y, str1.z); printf ("z = %c\n", str2.z); }
आउटपुट
x = 78, y = 2.324000, z = f z = r