কম্পিউটার

সি-তে মনোনীত ইনিশিয়ালাইজার


C90 স্ট্যান্ডার্ডে আমাদের অ্যারেগুলিকে নির্দিষ্ট ক্রমে শুরু করতে হবে, যেমন ইনিশিয়ালাইজ ইনডেক্স পজিশন 0, 1, 2 ইত্যাদিতে। C99 স্ট্যান্ডার্ড থেকে, তারা সি-তে মনোনীত ইনিশিয়ালাইজিং বৈশিষ্ট্য চালু করেছে। এখানে আমরা এলোমেলো ক্রমে এলিমেন্ট শুরু করতে পারি। অ্যারে সূচক বা কাঠামো সদস্য ব্যবহার করে শুরু করা যেতে পারে। এই এক্সটেনশনটি 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

  1. ডিজিটকে শব্দে রূপান্তর করতে সি প্রোগ্রাম

  2. সি প্রোগ্রাম ফাংশনে পয়েন্টার ব্যবহার করে যোগফল এবং পার্থক্য খুঁজে বের করতে

  3. সি-তে মনোনীত ইনিশিয়ালাইজার

  4. অন্যথায় এবং C++17-এ ইনিশিয়ালাইজার সহ বিবৃতি পরিবর্তন করুন