কম্পিউটার টিউটোরিয়াল

সি ভাষায় লোকাল এবং গ্লোবাল স্কোপ নিয়ম বিস্তারিত

গ্লোবাল স্কোপ (Global Scope)

ফাংশনের বাইরে ডিক্লেয়ার করা ভেরিয়েবল গ্লোবাল। প্রোগ্রামের যেকোনো ফাংশন থেকে অ্যাক্সেসযোগ্য।

#include <stdio.h>

int c = 30; // গ্লোবাল

void fun() {
    printf("c = %d\n", c);
}

int main() {
    int a = 10; // লোকাল
    printf("a = %d, c = %d\n", a, c);
    fun();
    return 0;
}

আউটপুট

a = 10, c = 30
c = 30

লোকাল স্কোপ (Local Scope)

ব্লক বা ফাংশনের ভিতরে ডিক্লেয়ার করা ভেরিয়েবল। শুধু সেই ব্লকে সীমাবদ্ধ।

#include <stdio.h>

int main() {
    int i = 1;
    printf("%d ", i); // 1

    {
        int j = 2; // নেস্টেড ব্লক
        printf("%d ", j); // 2
    }
    // j এখানে অ্যাক্সেসযোগ্য নয়
    return 0;
}

আউটপুট

1 2

নেস্টেড ব্লকে একই নামের ভেরিয়েবল (Shadowing/Masking)

#include <stdio.h>

int main() {
    {
        int i = 1;
        printf("%d ", i); // 1
    }
    {
        int i = 2; // আলাদা ভেরিয়েবল
        printf("%d ", i); // 2
    }
    return 0;
}

আউটপুট

1 2

ইনার ব্লকে আউটার ভেরিয়েবল মাস্ক করা

#include <stdio.h>

int main() {
    int i = 1;
    {
        int i = 2; // আউটারের i লুকানো হয়
        printf("%d ", i); // 2
    }
    // printf("%d", i); // এখানে 1 প্রিন্ট হতো
    return 0;
}

আউটপুট

2

আউটার ভেরিয়েবল ইনার ব্লকে অ্যাক্সেস (যদি রিডিক্লেয়ার না করা হয়)

#include <stdio.h>

int main() {
    int i = 1;
    {
        int j = 2;
        printf("%d ", j); // 2
        printf("%d ", i); // 1 (আউটারের i অ্যাক্সেসযোগ্য)
    }
    return 0;
}

আউটপুট

2 1

সারসংক্ষেপ নিয়মাবলী

  1. গ্লোবাল ভেরিয়েবল: প্রোগ্রামের সব জায়গায় দৃশ্যমান।
  2. লোকাল ভেরিয়েবল: শুধু ঘোষণা করা ব্লক/ফাংশনে দৃশ্যমান।
  3. নেস্টেড ব্লক: আউটার স্কোপের ভেরিয়েবল ইনারে দৃশ্যমান, যদি ইনারে সেম নামের ভেরিয়েবল না থাকে।
  4. শ্যাডোইং: ইনার ব্লকে একই নামের ভেরিয়েবল ডিক্লেয়ার করলে আউটারেরটি লুকায়।
  5. লাইফটাইম: গ্লোবাল = প্রোগ্রাম রানটাইম; লোকাল = ব্লক এক্সিকিউশন টাইম।
  1. C ভাষায় স্ট্রিং-এর ইনপুট এবং আউটপুট কী?

  2. সি ভাষায় ব্যবহৃত বিভিন্ন অপারেটর এবং এক্সপ্রেশন কী কী?

  3. সি ভাষায় শিফট অপারেশন (লেফট, রাইট শিফট এবং কমপ্লিমেন্ট)

  4. সি ভাষায় এক্সপ্রেশন ইভ্যালুয়েশন, প্রেসিডেন্স এবং অ্যাসোসিয়েশন