วันจันทร์ที่ 26 ธันวาคม พ.ศ. 2559

สรุปบทที่ 5 ฟังก์ชั่นการรับและแสดงผลและฟังก์ชั่นทางคณิตศาสตร์

สรุป บทที่ 5  
ฟังก์ชันการรับและแสดงผล และฟังก์ชันทางคณิตศาสตร์
การรับและแสดงผลข้อมูล

ฟังก์ชันรับข้อมูล  (input functions)
ในเนื้อหาฟังก์ชันการับข้อมูลของภาษา  C  มีฟังก์ชันที่ใช้ในการรับข้อมูลจากคีย์บอร์ด  อยู่หลายฟังก์ชันที่จะกล่าวถึง  ดังนี้คือ ฟังก์ชัน  scanf( ), ฟังก์ชัน  getchar( ), ฟังก์ชัน  getch( ),ฟังก์ชัน  getche( )  และฟังก์ชัน  gets( )  ซึ่งแต่ละฟังก์ชันมีรายละเอียดของการใช้งานดังนี้
 scanf( )
เป็นฟังก์ชันที่ใช้ในการรับข้อมูล จากคีย์บอร์ดเข้าไปเก็บไว้ในตัวแปรที่กำหนดไว ้โดยสามารถรับข้อมูลที่เป็นตัวเลขจำนวนเต็ม  ตัวเลขทศนิยม  ตัวอักขระตัวเดียว หรือข้อความก็ได





รูปแบบการใช้งานฟังก์ชัน
scanf(control  string, argument  list);

โดยที่
control  string  คือ  รหัสรูปแบบข้อมูล (format code)  โดยจะต้องเขียนอยู่ภายใต้เครื่องหมาย  “……..”  (double  quotation)
argument list คือ  ชื่อตัวแปรที่ใช้เก็บข้อมูลโดยจะต้องใช้เครื่องหมาย  &  (ampersand)  นำหน้าชื่อตัวแปร  ยกเว้นตัวแปรชนิด  string  ไม่ต้องมีเครื่องหมาย  &  นำหน้าชื่อ  ถ้ามีตัวแปรมากกว่า  1  ตัวแปร  ให้ใช้เครื่องหมาย  ,  (comma)  คั่นระหว่างตัวแปรแต่ละตัว
ฟังก์ชัน  getchar( )
เป็นฟังก์ชันที่ใช้รับข้อมูลจากคีย์บอร์ดเพียง  1  ตัวอักขระ  โดยการรับข้อมูลของฟังก์ชันนี้จะต้องกดแป้น  enter  ทุกครั้งที่ป้อนข้อมูลเสร็จ  จึงทำให้เห็นข้อมูลที่ป้อนปรากฏบนจอภาพด้วย  ถ้าต้องการนำข้อมูลที่ป้อนผ่านทางคีย์บอร์ดไปใช้งาน  จะต้องกำหนดตัวแปรชนิด  single  character  (char)  ขึ้นมา  1  ตัว  เพื่อเก็บค่าข้อมูลที่รับผ่านทางคีย์บอร์ด  ในทางตรงกันข้ามถ้าไม่ต้องการใช้ข้อมูลที่ป้อนผ่านทางคีย์บอร์ดก็ไม่ต้องกำหนดตัวแปรชนิด  char  ขึ้นมา           


รูปแบบการใช้งานฟังก์ชัน

getchar( );
หรือ         char_var = getchar( );
โดยที่
getchar( )  คือ  ฟังก์ชันที่ใช้รับข้อมูลเพียง  1  ตัวอักขระจากคีย์บอร์ด  โดยฟังก์ชันนี้จะไม่มี  argument ซึ่งอาจจะใช้ getchar(void) แทนคำว่า getchar( ) ก็ได้ แต่นิยมใช้ getchar( )มากกว่า
char_var  คือ  ตัวแปรชนิด  char  ซึ่งจะเก็บข้อมูล  1  ตัวอักขระที่ป้อนผ่านทางคีย์บอร์ด

ฟังก์ชัน  getch( )
เป็นฟังก์ชันที่ใช้รับข้อมูลเพียง  1 ตัวอักขระเหมือนกับฟังก์ชัน getchar( )  แตกต่างกันตรงที่เมื่อใช้ฟังก์ชันนี้รับข้อมูล  ข้อมูลที่ป้อนเข้าไปจะไม่ปรากฏให้เห็นบนจอภาพและไม่ต้องกดแป้น  enter  ตาม 



รูปแบบการใช้งานฟังก์ชัน


getch( );
หรือ         char_var = getch( );
โดยที่
getch( )  คือ ฟังก์ชันที่ใช้รับข้อมูลเพียง  1  ตัวอักขระจากคีย์บอร์ด  โดยฟังก์ชันนี้จะไม่มี  argument  ดังนั้นอาจจะใช้  getch(void)  แทนคำว่า  getch( )  ก็ได้  แต่นิยมใช้  getch( ) มากกว่า
char_var  คือ  ตัวแปรชนิด  char  ซึ่งจะเก็บข้อมูล  1  ตัวอักขระที่ป้อนผ่านทางคีย์บอร์ด
ฟังก์ชัน  getche( )
เป็นฟังก์ชันที่ใช้รับข้อมูลจากคีย์บอร์ดเพียง  1 ตัวอักขระ เหมือนฟังก์ชัน getch( )  แตกต่างกันตรงที่ข้อมูลที่ป้อนเข้าไป จะปรากฏให้เห็นบนจอภาพด้วย  นอกนั้นมีการทำงาน และลักษณะการใช้งานเหมือนฟังก์ชัน  getch( )  ทุกประการ





รูปแบบการใช้งานฟังก์ชัน

getche( );
หรือ         char_var = getche( );
    
โดยที่
getche( )  คือ ฟังก์ชันที่ใช้รับข้อมูลเพียง  1  ตัวอักขระจากคีย์บอร์ด  โดยฟังก์ชันนี้จะไม่มี  argument  ดังนั้นอาจจะใช้  getche(void)  แทนคำว่า  getche( )  ก็ได้  แต่นิยมใช้  getche( ) มากกว่า
char_var  คือ  ตัวแปรชนิด  char  ซึ่งจะเก็บข้อมูล  1  ตัวอักขระที่ป้อนผ่านทางคีย์บอร์ด


ฟังก์ชัน  gets( )
เป็นฟังก์ชันที่ใช้รับข้อมูลชนิดข้อความ  (string)  จากคีย์บอร์ด  จากนั้นนำข้อมูลที่รับเข้าไปเก็บไว้ในตัวแปรสตริง  (string  variables)  ที่กำหนดไว้


รูปแบบการใช้งานฟังก์ชัน
 gets(string_var);
โดย
string_var  คือ  ตัวแปรสตริง  ซึ่งจะใช้เก็บข้อมูลชนิดข้อความ  (string  constant)
gets( )       คือ  ฟังก์ชันที่ใช้รับข้อความจากคีย์บอร์ด  แล้วไปเก็บไว้ในตัวแปรสตริง


ตาราง แสดงรหัสแบบข้อมูล  ที่สามารถใช้ในฟังก์ชัน  scanf( )

รหัสรูปแบบ 
(format  code)
ความหมาย
%c
  ใช้กับข้อมูลชนิดตัวอักขระตัวเดียว  (single  character :  char)
%d
  ใช้กับข้อมูลชนิดตัวเลขจำนวนเต็ม (integer : int)  โดยสามารถใช้กับตัวเลขฐาน  10  เท่านั้น
%e
  ใช้กับข้อมูลชนิดตัวเลขจุดทศนิยม  (floating  point : float)
%f, %lf
ใช้กับข้อมูลชนิด  float  และ  double  ตามลำดับ
%g
ใช้กับข้อมูลชนิด  float
%h
ใช้กับข้อมูลชนิด  short  integer
%l
ใช้กับข้อมูลชนิด  int  โดยใช้กับตัวเลขฐาน 8, ฐาน 10 และฐาน 16
%o
ใช้กับข้อมูลชนิด  int  โดยสามารถใช้กับตัวเลขฐาน  8  เท่านั้น
%u
ใช้กับข้อมูลชนิด  unsigned  int  โดยใช้กับตัวเลขฐาน  10  เท่านั้น
%x
ใช้กับข้อมูลชนิด  int  โดยสามารถใช้กับตัวเลขฐาน  16  เท่านั้น
%s
ใช้กับข้อมูลชนิด  string



สรุปบทที่ 4 นิพจน์และตัวดำเนินการ

สรุปบทที่ 4 

 นิพจน์และตัวดำเนินการ


      นิพจน์ประกอบด้วย ตัวแปร ค่าคงที่ และตัว

ดำเนินการทางคณิตศาสตร์มาประกอบรวมกัน

ตัวดำเนินการพื้นฐานในภาษาซี ประกอบด้วย


1. ตัวดำเนินการคณิตศาสตร์

2. ตัวดำเนินการยูนารี

3. ตัวดำเนินการเปรียบเทียบ

4. ตัวดำเนินการตรรกะ

5. ตัวดำเนินการกำหนดค่าแบบผสม

6. ตัวดำเนินการเงื่อนไข


1. ตัวดำเนินการคณิตศาสตร์
การเพิ่มค่า (increment)/ลดค่า (decrement) ด้วยสัญลักษณ์ ++, พิจารณา code ต่อไปนี้
/*1*/ int a = 1;
/*2*/ b = ++a;
บรรทัดที่ 1 เป็นการประกาศตัวแปรชนิดจำนวนเต็มชื่อ a และกำหนดค่าเริ่มต้นให้เท่ากับ 1
บรรทัดที่ 2 เป็นการเพิ่มค่าตัวแปร a ขึ้น 1 ค่า แล้วจึง copy ค่าของตัวแปร a ไปให้ตัวแปร b
code ดังกล่าวมีรูปแบบเต็มดังนี้
/*1*/ int a = 1, b;
/*2*/ a = a+1;
/*3*/ b = a;




หรือกล่าวได้ว่าเป็นการเพิ่มค่า a ขึ้น 1 ค่า ก่อนที่จะกำหนดค่านั้นให้ตัวแปร b
นอกจากเราจะเพิ่มค่าตัวแปรโดยใช้ a++ ได้ด้วยโดยมีความหมายแตกต่างกันเล็กน้อย ดังนี้
/*1*/ int a = 1, b;
/*2*/ b = a;
/*3*/ a = a+1;
หรือกล่าวได้ว่าเป็นการกำหนดค่าในตัวแปร b ให้กับตัวแปร a ก่อน แล้วค่อยเพิ่มค่าในตัวแปร a ขึ้น 1 ค่า
ในทำนองเดียวกัน เราสามารถลดค่าของตัวแปรใดๆ ด้วยเครื่องหมาย -- ได้เช่นกัน
การลดรูปคำสั่ง
พิจารณาตัวอย่างต่อไปนี้
/*1*/ int a = 5, b = 10;
/*2*/ a = a+b;
code ในบรรทัดที่ 2 เป็นการบวกค่าของตัวแปร a กับตัวแปร b แล้วคืนผลลัพธ์กลับไปเก็บไว้ในตัวแปร a (เท่ากับ 15)
ซึ่งสามารถลดรูปได้ดังนี้
/*1*/ int a = 5, b = 10;
/*2*/ a + =b;
ในทำนองเดียวกัน เราสามารถนำหลักการลดรูปนี้ไปใช้กับตัวดำเนินการ - (ลบ), * (คูณ), / (หาร), % (มอด) ได้
2. ตัวดำเนินการยูนารี
ตัวดำเนินการยูนารี คือ ตัวดำเนินการที่นำมาใช้กับตัวถูกดำเนินการชนิดใดๆ ในการเพิ่มค่าใหม่ขึ้นมา             ชึ่งอาจจะเป็นตัวถูกดำเนินการแบบค่าคงที่ เลขจำนวนเต็ม เลขจำนวนจริง ตัวแปร และนิพจน์ได้
                    ตัวดำเนินการเพิ่มค่า ใช้เครื่องหมาย  ++
                    ตัวดำเนินการลดค่า    ใช้เครื่องหมาย --
                ตัวอย่าง :
              ตัวดำเนินการ             นิพจน์                   ความหมาย
             ++ (prefix)                 ++a       เพิ่มค่าที่ละหนึ่งให้กับ a ก่อนแล้วจึงนำค่าใหม่ของ a ในนิพจน์นี้ไปใช้
             ++ (prefix)                 a++       นำค่าปัจจุบันของ a ในนิพจน์นี้ไปใช้งานก่อนแล้วค่อยเพิ่มค่า a อีกหนึ่ง
              -- (prefix)                  --b         ลดค่าลงอีกหนึ่งให้กับ b ก่อน แลัวจึงนำค่าใหม่ของ b ในนิพจน์นี้ไปใช้
               -- (prefix)                  b--        นำค่าค่าปัจจุบันของ b ในนิพจน์นี้ไปใช้งานก่อนแล้วค่อยลดค่า b ลง
                                                            หนึ่ง

                หมายเหตุ : ++i, i++  หมายถึง i = i +1
                                    --i, i--    หมายถึง i = i -



3. ตัวดำเนินการเปรียบเทียบ
เราสามารถกำหนดการทำงานของโปรแกรมให้เป็นไปตามเงื่อนไขต่างๆ ที่ต้องการได้ โดยตรวจสอบเงื่อนไขด้วยตัวดำเนินการเปรียบเทียบ
เครื่องหมาย
ความหมาย
==
เท่ากับ
!=
ไม่เท่ากับ
< 
น้อยกว่า
<=
น้อยกว่าหรือเท่ากับ
> 
มากกว่า
>=
มากกว่าหรือเท่ากับ


ผลลัพธ์จากการใช้ตัวดำเนินการเปรียบเทียบจะมีค่าเป็น จริง/true/1 และ เท็จ/false/0 เท่านั้น ดังตัวอย่างต่อไปนี้
/*1*/ int a = 5, b = 10;
/*2*/ a == 7;
/*3*/ a != b;
ดังนั้นบรรทัดที่ 2 จะให้ผลลัพธ์เป็นเท็จ (a มีค่า 5 ซึ่งไม่เท่ากับ 7) และบรรทัดที่ 3 จะให้ผลลัพธ์เป็นจริง (a ไม่เท่ากับ b)
4. ตัวดำเนินการตรรกะ
  เป็นตัวดำเนินการจำพวกใช้เชื่อมครับ ตัวดำเนินการพวกนี้จะใช้มากในส่วนของเงื่อนไข และลูปครับ ซึ่งจะอธิบายในบทต่อไป บางคนอาจจำได้เพราะเคยเรียนมาตอนม.ปลายแล้วครับ วิชาคณิตศาสตร์ ในบทตรรกะศาสตร์ไงครับ มีความหมายตามนั้นเลยครับ
กำหนดให้ตัวแปร A มีค่าเท่ากับ 1 (A=1) และตัวแปร B มีค่าเท่ากับ 0 (B=0)
ตารางตัวดำเนินการเชิงตรรกะ และตัวอย่างการใช้
ตัวดำเนินการ
อธิบาย
ตัวอย่าง
&&
เครื่องหมายและในทางตรรกะ หรือเครื่องหมายandในทางดิจิตัล
(A && B) เป็นเท็จ
||
เครื่องหมายหรือในทางตรรกะ หรือเครื่องหมายorในทางดิจิตัล
(A || B) เป็นจริง
!
เครื่องหมายnotในทางตรรกะ และ ในทางดิจิตัล
!(A&&B) เป็นจริง




5. ตัวดำเนินการกำหนดค่าแบบผสม
 จะประกอบด้วย + = , - = , * = , / = และ % =  
โดยสามารถแสดงได้ดังนี้
นิพจน์ทั่วไป
นิพจน์แบบผสม
a = a + 5
a + = 5
a = a - b
a - = 5
a = a * (b - 3)
a * = (b – 3)
a = a / 3
a / = -
a = a % (b – 2)
a % = (b - 2)

6. ตัวดำเนินการเงื่อนไข
 จะนำไปใช้ในการทดสอบค่านิพจน์ทางตรรกะว่า จริงหรือเท็จ ดังนี้
รูปแบบ    expression1 ?    expression2  :  expression3
                  โดยที่              expression 1  หมายถึง  นิพจน์เงื่อนไข
                                         expression 2  หมายถึง  นิพจน์กรณีเป็นจริง
                                          expression 3  หมายถึง  นิพจน์กรณีเป็นเท็จ

ตัวอย่าง
                 result  =   (x < y) ?  0 : 100 ;       หรือ         if   (x < y)
                                                                                        result = 0 ;
                                                                                     else
                                                                                         result = 100 ;

หมายความว่า        ถ้า x มีค่าน้อยกว่า y  แล้ว
                            
กรณีเป็นจริง    ตัวแปร result  จะถูกกำหนดค่าเป็น 0
                       
     กรณีเป็นเท็จ    ตัวแปร result  จะถูกกำหนดค่าเป็น 100
ตัวดำเนินการกับลำดับความสำคัญ
               ลำดับการประมวลผลของนิพจน์  จะทำการประมวลผลในส่วนของวงเล็บก่อนในกรณีที่มีวงเล็บ จากนั้นจะคำนวณไปตามลำดับของการประมวลดังตารางข้างล่างนี้ และหากมีเครื่องหมายที่อยู่ในลำดับการประมวลผลเดียวกันจะทำการคำนวณจากด้านซ้ายไปด้านขวา

อ้างอิง

หนังสือพื้นฐานการเขียนโปรแกรมคอมพิวเตอร์
รหัส 2128-2009 

https://hnumlp10508.wordpress.com/%e0%b8%9a%e0%b8%97%e0%b9%80%e0%b8%a3%e0%b8%b5%e0%b8%a2%e0%b8%99/%e0%b8%9a%e0%b8%97%e0%b8%97%e0%b8%b5%e0%b9%88-2/%e0%b8%95%e0%b8%b1%e0%b8%a7%e0%b8%94%e0%b8%b3%e0%b9%80%e0%b8%99%e0%b8%b4%e0%b8%99%e0%b8%81%e0%b8%b2%e0%b8%a3%e0%b9%81%e0%b8%a5%e0%b8%b0%e0%b8%99%e0%b8%b4%e0%b8%9e%e0%b8%88%e0%b8%99%e0%b9%8c/


สรุปบทที่ 3 เรื่อง องค์ประกอบของภาษาซี ตัวแปร และชนิดข้อมูล

สรุปบทที่ 3
เรื่อง  องค์ประกอบของภาษาซี ตัวแปร และชนิดข้อมูล

         ภาษาชีถูกพัฒนาขึ้นโดย เดนนิส ริตชี ที่ห้องปฏิบัติการเบลล์ ซึ่งมีต้นแบบมาจากภาษาบีที่อยู่บนรากฐานของภาษาบีซีพีแอล
         ทางสถาบัน ANSI ได้รับรองมาตรฐานภาษาซีขึ้นมา ภายใต้ชื่อ ANSI-C
         ปัจจุบันได้มีการพัฒนาภาษาซีให้มีประสิทธิภาพมากขึ้นเป็นเวอร์ชั่นต่างๆ มากมายด้วยการนำมาพัฒนาต่อยอดเป็น C++ หรือ C# โดยได้เพิ่มชุดคำสั่งที่สนับสนุนการโปรแกรมเชิงวัตถุ และยังคงรองรับชุดคำสั่งมาตรฐานของภาษาซีดั้งเดิมอยู่ด้วย
ภาษาซีมีคุณสมบัติที่โดดเด่นกว่าภาษาระดับสูงทั่วไปในหลายๆ ด้านด้วยกัน  คือ
   1.เป็นภาษาที่ไม่ขึ้นกับฮาร์ดแวร์และระบบปฏิบัติการ                   
   2.เป็นภาษาที่มีความยืดหยุ่นสูงมาก
   3.มีประสิทธิภาพสูง
   4.ความสามารถในด้านการโปรแกรมแบบโมดูล
   5.มีตัวแปรชนิดพอยน์เตอร์

   6.ภาษาซีมองตัวอักษรตัวพิมพ์เล็กและตัวพิมพ์ใหญ่แตกต่างกัน (Case Sensitive)

กฎเกณฑ์ที่ต้องรู้ในการเริ่มต้นฝึกหัดเขียนโปรแกรมภาษาซี คือ
1.ที่ส่วนหัวโปรแกรม จะต้องกำหนดตัวประมวลผลก่อนเสมอ
2.ชุดคำสั่งในภาษาซี จะใช้อักษรตัวพิมพ์เล็กทั้งหมด
ตัวแปรที่ใช้งาน ต้องถูกประกาศชนิดข้อมูลไว้เสมอ
4.ภายในโปรแกรม จะต้องมีอย่างน้อย 1 ฟังก์ชันเสมอ ซึ่งก็คือฟังก์ชัน main () นั่นเอง
5.สามารถใช้เครื่องหมายปีกกา {เพื่อบอกจุดเริ่มต้นของชุดคำสั่ง และเครื่องหมายปีกกาปิด} เพื่อบอกจุดสิ้นสุดของชุดคำสั่ง โดยสามารถมีเครื่องหมายปีกกาซ้อนย่อยอยู่ภายในได้
6.เมื่อเขียนชุดคำสั่งเสร็จแล้ว ต้องจบด้วยเครื่องหมาย   ;
7.สามารถอธิบายโปรแกรมตามความจำเป็นด้วยการใช้เครื่องหมาย/*…..*/ หรือ //….

ตัวแปร คือชื่อที่ตั้งขึ้นตามกฎการตั้งชื่อตัวแปร เพื่อนำมาใช้จัดเก็บข้อมูล และอ้างอิงใช้งานภายในโปรแกรม
ค่าข้อมูลที่บันทึกอยู่ในตัวแปรนั้นจะถูกจัดเก็บไว้ในหน่วยความจำหลัก ที่สามารนำไปประมวลผล และอ้างอิงได้ภายในโปรแกรม


       กฎเกณฑ์การตั้งตัวแปรในภาษาซี ประกอบด้วย

     1.สามรถใช้ตัวอักษร A ถึง Z หรือ a ถึง z รวมทั้งตัวเลข 0 ถึง 9 และเครื่องหมาย _  (Underscore )  มาใช้เพื่อการตั้งชื่อตัวแปรได้ แต่มีเงื่อนไขว่า ห้ามใช้ตัวเลขนำหน้าชื่อตัวแปร ตัวอย่างเช่น 1 digit ถือว่าผิด แต่ถ้าตั้งชื่อใหม่เป็น digit1 หรือ digit1 ถือว่าถูกต้อง2.ชื่อตัวแปรสามารถมีความยาวได้ถึง 31 ตัวอักษร (กรณีเป็น ANSI-C)3.ชื่อตัวแปร จะต้องไม่ตรงกับคำสงวน (Reserved Words)


ในภาษาซี จะมีตัวแปรอีกชนิดหนึ่งที่เรียกว่า ค่าคงที่ ซึ่งจะแตกต่างจากตัวแปรทั่วไปคือ ตัวแปรทั่วไปสามารถถูกเปลี่ยนค่าได้ตลอดเวลาถายในโปรแกรม ในขณะที่ค่าคงที่เมื่อถูกกำหนดไว้ในตัวแปรแล้ว ค่าดังกล่าวจะเป็นค่านั้นๆ ตลอดในโปรแกรม ไม่สามารถเปลี่ยนแปลงได้
          การกำหนดค่าคงที่ในภาษาซีนั้น จะใช้ไดเรกทีฟ  #define ที่จะประกาศไว้ที่ส่วนหัวโปรแกรม หรืออาจประกาศใช้งานในส่วนของชุดคำสั่งก็ได้ ด้วยการใช้ const นำหน้าชนิดข้อมูลที่ประกาศตัวแปร


 ชนิดข้อมูลตัวอักษร เป็นชนิดข้อมูลที่จัดเก็บตัวอักษรหรือตัวอักษรขระเพียง 1 ตัวเท่านั้นกรณีที่ต้องการจัดเก็บตัวอักขระหลายๆ ตัว เราจะเรียกกลุ่มข้อความนี้ว่า สตริง (String1)
 ชนิดข้อมูลแบบเลขจำนวนเต็ม หมายถึงค่าตัวเลขจำนวนเต็ม ไม่มีทศนิยม ซึ่งประกอบด้วย int และ long int แบบไม่มีทศนิยม นอกจากนี้ยังสามารถใช้คำเพิ่มเติมนำหน้าชนิดข้อมูลอย่าง short หรือ long ก็ได้
 ชนิดข้อมูลแบบทศนิยม หรือเลขจำนวนจริง คือ ค่าตัวเลขที่สามารถมีจุดทศนิยม โดยชนิดข้อมูลนี้สามารถกำหนดขนาดความกว้างตามความต้องการ เช่น float, double หรือ long double
          ควรกำหนดชนิดข้อมูลให้เหมาะสมกับการใช้งานทั้งนี้หากกำหนดชนิดข้อมูลที่มีขนาดเล็กเกิน ก็จะไม่สามารถรับค่าที่เกินกว่าช่วงที่มีอยู่ได้ หรือเรียกว่าโอเวอร์โฟลว์ในขณะที่หากกำหนดชนิดข้อมูลที่มีขนาดใหญ่เกิน ก็ทำให้สิ้นเปลืองหน่วยความจำ
ตัวแปรแบบภายใน  จะถูกประกาศใช้งานเฉพาะฟังก์ชันนั้นๆ ดังนั้น หากตัวแปรแบบภายในของและฟังก์ชัน มีการกำหนดชื่อตัวแปรเหมือนกัน จะถือว่าเป็นตัวแปรคนละตัว
  ตัวแปรแบบภายนอก  ถือเป็นตัวแปรสาธารณะที่ทุกๆ โปรแกรมย่อยหรือทุกๆ ฟังก์ชันสามารถใช้งานได้ โดยจะถูกประกาศไว้ภายนอกฟังก์ชัน


อ้างอิง

หนังสือพื้นฐานการเขียนโปรแกรมคอมพิวเตอร์
รหัส 2128-2009