ขอบเขตท้องถิ่น
ขอบเขตภายในระบุว่าตัวแปรที่กำหนดภายในบล็อกจะมองเห็นได้เฉพาะในบล็อกนั้นและมองไม่เห็นภายนอกบล็อก
ขอบเขตทั่วโลก
Global scope ระบุว่าตัวแปรที่กำหนดนอกบล็อกสามารถมองเห็นได้จนถึงจุดสิ้นสุดของโปรแกรม
ตัวอย่าง
#include<stdio.h> int r= 50; /* global area */ main (){ int p = 30; printf (“p=%d, r=%d” p,r); fun (); } fun (){ printf (“r=%d”,r); }
ผลลัพธ์
p =30, r = 50 r = 50
กฎขอบเขตที่เกี่ยวข้องกับฟังก์ชัน
-
ฟังก์ชันคือกลุ่มของคำสั่งที่ทำงานเฉพาะ
-
ตัวแปรที่ประกาศภายในเนื้อหาของฟังก์ชันเรียกว่าตัวแปรท้องถิ่น
-
ตัวแปรเหล่านี้มีอยู่ในฟังก์ชันเฉพาะที่สร้างตัวแปรเหล่านี้เท่านั้น ฟังก์ชันอื่นๆ ไม่รู้จักและฟังก์ชันหลักด้วย
-
การมีอยู่ของตัวแปรโลคัลจะสิ้นสุดลงเมื่อฟังก์ชันเสร็จสิ้นภารกิจเฉพาะและกลับไปยังจุดเรียก
ตัวอย่าง
#include<stdio.h> main (){ int a=10, b = 20; printf ("before swapping a=%d, b=%d", a,b); swap (a,b); printf ("after swapping a=%d, b=%d", a,b); } swap (int a, int b){ int c; c=a; a=b; b=c; }
ผลลัพธ์
Before swapping a=10, b=20 After swapping a = 10, b=20
ตัวแปรที่ประกาศภายนอกเนื้อหาของฟังก์ชันเรียกว่าตัวแปรส่วนกลาง ตัวแปรเหล่านี้สามารถเข้าถึงได้โดยฟังก์ชันใดๆ
ตัวอย่าง
#include<stdio.h> int a=10, b = 20; main(){ printf ("before swapping a=%d, b=%d", a,b); swap (); printf ("after swapping a=%d, b=%d", a,b); } swap (){ int c; c=a; a=b; b=c; }
ผลลัพธ์
Before swapping a = 10, b =20 After swapping a = 20, b = 10