গ্লোবাল স্কোপ
গ্লোবাল স্কোপ নির্দিষ্ট করে যে ব্লকের বাইরে সংজ্ঞায়িত ভেরিয়েবলগুলি প্রোগ্রামের শেষ পর্যন্ত দৃশ্যমান।
উদাহরণ
#include<stdio.h>
int c= 30; /* global area */
main (){
int a = 10;
printf (“a=%d, c=%d” a,c);
fun ();
}
fun (){
printf (“c=%d”,c);
} আউটপুট
a =10, c = 30 c = 30
স্থানীয় সুযোগ
স্থানীয় স্কোপ নির্দিষ্ট করে যে ব্লকের মধ্যে সংজ্ঞায়িত ভেরিয়েবলগুলি শুধুমাত্র সেই ব্লকে দৃশ্যমান এবং ব্লকের বাইরে অদৃশ্য৷
একটি ব্লক বা ফাংশনে (স্থানীয়) ঘোষিত ভেরিয়েবলগুলি সেই ব্লকের মধ্যে অ্যাক্সেসযোগ্য এবং এর বাইরে বিদ্যমান নেই৷
উদাহরণ
#include<stdio.h>
main (){
int i = 1;// local scope
printf ("%d",i);
}
{
int j=2; //local scope
printf("%d",j);
}
} আউটপুট
1 2
এমনকি যদি ভেরিয়েবলগুলি তাদের নিজ নিজ ব্লকে এবং একই নামের সাথে পুনঃঘোষিত হয়, তবে সেগুলিকে আলাদাভাবে বিবেচনা করা হয়৷
উদাহরণ
#include<stdio.h>
main (){
{
int i = 1; //variable with same name
printf ("%d",i);
}
{
int i =2; // variable with same name
printf ("%d",i);
}
} আউটপুট
1 2
ব্লকের মধ্যে ভেরিয়েবলের পুনঃঘোষণা বাইরের ব্লকের মতো একই নাম বহন করে ভিতরের ব্লকগুলি চালানোর সময় বাইরের ব্লক ভেরিয়েবলগুলিকে মাস্ক করে৷
উদাহরণ
#include<stdio.h>
main (){
int i = 1;{
int i = 2;
printf (“%d”,i);
}
} আউটপুট
2
অভ্যন্তরীণ ব্লকের বাইরে ঘোষিত ভেরিয়েবলগুলি নেস্টেড ব্লকগুলিতে অ্যাক্সেসযোগ্য, যদি এই ভেরিয়েবলগুলি ভিতরের ব্লকের মধ্যে ঘোষিত না হয়৷
উদাহরণ
#include<stdio.h>
main (){
int i = 1;{
int j = 2;
printf ("%d",j);
printf ("%d",i);
}
} আউটপুট
2 1