ตัวแปรชุด
และตัวแปรกลุม
่
อักขระ
ตัว แปรชุด

ตัว แปรชุด  (array)  เป็นกลุ่มของข้อมูลชนิดเดียวกันที่กำำหนดให้จัดเก็บเรีย
ลำำดับตำมจำำนวนที่ต้องกำร มี ชื่อตัวแปรเหมือนกันต่ำงกันที่ดัชนี(index)ระบ
งของตัวแปรในชุดนั้น กำรเก็บข้อมูลเป็นตัวแปรชุด ทำำให้งำยในกำรตั้งชื่อตัว
่
มำก เข้ำถึงข้อมูลได้เร็ว แต่ถ้ำเก็บข้อมูลไม่ครบจะทำำให้เสียเนื้อที่หน่วยควำมจ
จำำเป็น
 ประเภทของตัว แปรชุด อำจแบ่ง ตำมลัก ษณะ
ของจำ มิติ (one เลขของดัarrays หรื
1. ตัวแปรชุด 1ำ นวนตัวdimension ช นี คือ อ single

dimension arrays)  เป็นตัวแปรชุดที่มีตัวเลขแสดงขนำดเป็น
เลขตัวเดียว เช่น word[20] ,num[25] , x[15]
2. ตัวแปรชุดหลำยมิติ (multi-dimension arrays) เป็น
ตัวแปรชุดที่ชื่อมีตัวเลขแสดงขนำดเป็นตัวเลขหลำยตัว ที่นิยม
ใช้กนมี 2 มิติ กับ 3 มิติ
ั
                2.1 ตัวแปรชุด 2 มิติ มีเลขแสดงขนำด 2 ตัว เช่น
a[3][5] , name[5][6]
                2.2 ตัวแปรชุด 3 มิติ มีเลขแสดงขนำด 3 ตัว เช่น
a[3][5][6] , name[5][6][8]
 กำรประกำศและกำร
กำำ หนดค่ำ ตั ด 1 มิติ ใช้ 1 มิ ดั
  กำรประกำศตัวแปรชุว แปรชุด คำำสั่ง ต ิงนี้

                Type arrayname[size];
type  คือ ชนิดของตัวแปร เช่น int char float 
arrayname คือชื่อของตัวแปรarray
size คือ ขนำดของตัวแปร
 int  a[12];         เป็นกำรประกำศตัวแปร array ชื่อ a เป็น array ของข้อ
สมำชิกได้ จำำนวน 12 ตัว คือ a[0] a[1] a[2] a[3] … a[11] โดยมีกำรจองเน
ำมจำำเปรียบเทียบได้ดังรูป
โดยสมำชิกแต่ละตัวจะใช้เนื้อที่เท่ำกับตัวแปร
ประเภท integer ที่ไม่ได้อยู่ใน array  คือ 2 ไบต์ ต่อ
ตัวแปร 1 ตัวดังนั้นเนื้อที่หน่วยควำมจำำที่ใช้ทั้งหมดจึงเท่ำกับ
จำำนวนสมำชิก คูณ ด้วย 2 ไบต์ กำรกำำหนดค่ำให้แก่
ตัวแปร array  อำจกำำหนดพร้อมกับกำรประกำศ เช่น
                int  num1[3] ={56,25,89}; เป็นกำรประกำศ
ว่ำตัวแปร num1 เป็น array ประเภท integer มีสมำชิก 3
ตัวโดย num1[0] =
56; ส่วน num1[1]=25; และ num1[2]=89;
                แต่ไม่สำมำรถประกำศว่ำ  int value[ ] ; โดย
ถ้ำจะไม่ระบุจำำนวนสมำชิก ต้องระบุค่ำของแต่ละสมำชิกที่ถก
ู
ล้อมรอบด้วย { }โดยระหว่ำงสมำชิกคั่นด้วย
เครื่องหมำย , (คอมม่ำ) ดัง
ตัวอย่ำง inta[]={200,230};                 
                
  หรือ ประกำศตัวแปร โดยยังไม่กำำหนดค่ำ เช่น int
money[5]; แล้วไปกำำหนดค่ำให้สมำชิกแต่ละตัวใน
ภำยหลัง เช่น money[0] =
250;          money[4] = 500;
                 float  num[5]; เป็นกำรประกำศ
ตัวแปร array ของ ตัวแปร จำำนวนที่มีทศนิยมได้
คือ float ในชื่อ num ซึ่งมีสมำชิกได้ 5 ตัว
คือ num[0] num[1]… num[4] มีกำรจองเนื้อที่
ในหน่วยควำมจำำเปรียบเทียบได้ ดังรูป
คือ num[0] มีค่าเป็น 2.00 และ num[3] มีค่า
เป็น 55.52 ส่วน num[1] , num[2] และ num[4] ยังไม่มีค่า
ส่วนการกำาหนดค่าของตัวแปร array ประเภท float เป็นไป
ในลักษณะเดียวกับarray ประเภท integer ประกาศพร้อมกับ
กำาหนดค่าให้เลยโดยล้อมรอบด้วย {  }  และค่าของสมาชิก
แต่ละตัวคั่นดัวย , (คอมม่า) เช่น
                Float num[5] =
{2.00,1.25,5.36,6.32,246.10};  โดยค่าของ num[0] =
2.00  ส่วนของ num[1] = 1.25 ค่าของ num[2] =
5.36 ค่าของ num[3] = 6.32 และ num[4] =
246.10  ตามลำาดับ หรือประกาศตัวแปรก่อนแล้วไปกำาหนด
ค่าภายหลัง เช่น
                float salary[10];
                salary[0] = 25000.00;
                salary[9] = 55600.00;
                  char a[12];  เป็นการประกาศ
ตัวแปร array ชื่อ a เป็น array ของ ตัวแปรอักขระ char มี
สมาชิกได้ 12 ตัว คือ a[0] a[1] … a[11] โดยการใช้เนื้อที่
โดยที่สมาชิกแต่ละตัวใช้เนือที่ 1 ไบต์ ดัง
้
นั้น array ประเภท char ชุดนี้ ใช้เนื้อที่เป็น12 x
1 คือ 12 bytes ส่วนการกำาหนดค่าให้
กับ array  ประเภทนี้ จะพิจารณา ในหัวข้อต่างหากเพราะ
เป็นตัวแปรประเภท ข้อความ (string variable) ซึ่งมี
ลักษณะแตกต่างไปจากพวก integer และ float
 
าศและการกำา หนดค่า ตัว แปรชุด 2 มิต ิ (two dimension arrays)
array 2 มิติ มีการจัดการจัดเก็บเปรียบเทียบคล้ายกับ ตาราง 2 มิติ มิติที่ 1
เปรียบเหมือนแถว(row) ของตาราง มิติที่ 2 เปรียบคล้ายกับสดมภ์(column)ของ
ตาราง  ดังรูป

รูปนี้เป็น array ของ x[6] ซึ่งมีสมาชิกทั้งหมด 6 ตัว เปรียบเหมือนเก็บไว้ใน
ตารางช่องละ 1 ตัว ดังนั้นจำานวนสมาชิกจะมีจำานวน เท่ากับ จำานวนแถว คูณ
จำานวนสดมภ์ โดยหน่วยความจำาที่ใช้เท่ากับหน่วยความจำาที่ใช้โดยตัวแปร
แต่ละตัว คูณ ด้วยจำานวนตัวแปรทั้งหมดใน array เช่น ในรูป ถ้า
เป็น array ของ จำานวนเต็ม สมาชิกแต่ละตัวใช้หน่วยความจำา 2 ไบต์ หน่วย
ความจำาที่ใช้ทั้ง คือ 2 x 6 คือ 12 ไบต์
                   เราอาจพิจารณา  array 2 มิติ ว่าเป็น array ของ array  1 มิติ
ดังรูป
สมาชิกใน array 2 มิติ ที่ชื่อ table ดังนั้น array ชื่อ table จะมีสมาชิก
ทั้งหมด คือ สมาชิกของ array ทั้งสาม คือ table[0][0] , table[0][1]
…  ถึง table[2][3] ทั้งหมด 12 ตัว โดยในสมาชิกเหล่านี้  บางตำาแหน่งมี
ข้อมูลแล้ว เช่น table[0][0] มีขอมูลเป็น 10 โดยการประกาศตัวแปร array 2
้
มิติ มีรูปแบบ คือ type arrayname [r] [c];
                เมื่อ          type คือ ชนิดของข้อมูล เช่น int , float ,char
                                arrayname คือ ชื่อของ array เช่น num ,
word ,x
                                r , c   คือ จำานวนแถวและจำานวนสดมภ์ ตามลำาดับ
            โดยตัวเลขกำากับตำาแหน่ง(ดัชนี) เป็น ในแถว r เป็น  0,1,2 ... ,
r-1 ในสดมภ์ c เป็น 0,1,2 ... , c-1
เช่น  int num[3][4]; หมายความว่า มี array ของ integer ที่มีจำานวน 3
แถว 4 สดมภ์ ดังนั้นมีสมาชิก ทั้งหมด 12 ตัว เริ่มด้วย num[0][0] , num[0]
[1] ,num[0][2],num[0][3],num[1][0],…,num[2][3]
การกำาหนดค่าอาจกำาหนดในขั้นตอนประกาศตัวแปร เช่น
                                char word[ ][ ] =
{“Bodin”,”decha”,”Computer”,”Pentium”};
หมายความว่า word เป็นตัวแปร array  2 มิติ ขนาด 4 x 9 ของสมาชิกที่เป็น
อักขระ โดยแต่ละสมาชิก มีขนาด 1 ไบต์ โดย word[0] =
“Bodin”   word[1] = "dehca”  word[2] = "Computer"
ส่วน word[3] = “Pentium"
                หรือ ประกาศ โดยยังไม่กำาหนดค่า แล้วกำาหนดค่าภายหลังเช่น
                int  num[2][2];
วแปร array 3 มิต ิ  มีการประกาศ ดังนี้

e  arrayname[p] [r][c];
         type คือ ชนิดของตัวแปร เช่น int ,float,char
         arrayname คือชื่อของตัวแปร
         r,c,p คือตัวเลขแสดงจำานวนในมิติที่ 1 มิติที่ 2 และมิติที่ 3 ของ array  ตามลำาดับ
วเลขกำากับตำาแหน่ง(ดัชนี)เป็นดังนี้
         p  เป็น    0,1,2 .. , p-1
         r   เป็น    0,1,2, ... ,r-1
         c   เป็น    0,1,2 ... ,c-1
ณะของ array 3 มิติ อาจเปรียบเทียบเพื่อ
ามเข้าใจ ว่าเป็น arrays of arrays ดังรูป
 table [3][5][4] (อาจเขียนเป็น table[5][4][3] หรือแบบอื่นที่ให้ผลถึง
จำานวนที่เท่ากันก็ได้ แต่เวลาเขียนโปรแกรมจะต้องทำาเข้าใจให้ตลอดว่า
เราเขียนแบบใดจะได้ไม่สับสนในการเขียนโปรแกรม)
                หรือ อาจพิจารณาว่า เป็น array of arrays ดังรูป 
เช่น table[0][0][0] ถึง table[0][0][0] เป็นสมาชิกใน table[0]
[0] โดย table[0][0] ถึง table[0][4] เป็นสมาชิก
ใน table[0] และ table[0] ถึง table[2] เป็นสมาชิกใน table (ซึ่งก็
คือ table[3[[5][4] ) โดยจำานวนสมาชิกใน array เท่ากับ r *c
*p เช่น array  ในรูป มีสมาชิกทั้งหมด 3 * 5 * 4 คือ  60 สมาชิก ส่วน
การกำาหนดค่าของสมาชิกของ array แต่สมาชิกก็เป็นทำานองเดียว
กับ array 1 มิติ และ array 2 มิติ เช่นเดียวกับจำานวนหน่วยความจำาที่ใช้ก็
คือหน่วยความจำาที่สมาชิกแต่ละตัวใช้ คูณด้วยจำานวนสมาชิกทั้งหมด
ทำานองเดียวกัน array ยังสามารถ มี array 4 มิติ ฯลฯ ได้ แต่ปกติไม่ใคร่
ได้ใช้และเขียนรูปอธิบายได้ยาก เขียนได้แต่ในรูปสัญลักษณ์
 type arrayname[ ]...[ ]
บางคนอาจอธิบายสมาชิกของ array 3 มิติ ดังรูป
ตัว อย่า ง  ให้นักเรียนศึกษาโปรแกรม array5_1.c แล้วพิจารณาว่าโปรแกรมนี้
จะทำางานอย่างใด และค่าต่าง ๆใน array  เป็นเท่าใดบ้าง แล้วลอกโปรแกรม
แล้วคอมไพล์และให้โปรแกรมทำางาน แล้วพิจารณาว่าคาดคะเนถูกต้องหรือไม่
/* array5_1.c */
# include <stdio.h>
# include <conio.h>
main()
{
    clrscr();
    float  num[50];
    float sum;
    int i,time;
    printf("n Enter the time of input that you want.  :");
    scanf("%d",&time);
    sum = 0;
    for (i=0;(i+1)<=time;i++)
    {
        printf("Please type the floating number for %d round :",i+1);
        scanf("%f",&num[i]);
        sum = sum + num[i];
    }
    printf("n  Input = %d time sum.of them = %4.2f   average of
data is %4.2f",time ,sum ,sum/time);
}
กษาโปรแกรม array5_2.c แล้วพิจารณาว่าโปรแกรมนี้จะทำางานอย่างใด และค่าต่าง ๆใน array  เป็นเท่าใ
แกรมทำางาน แล้วพิจารณาว่าคาดคะเนถูกต้องหรือไม่

{ "Chattam Sermsub","Sompol Somsuk","Kanokporn Kanok",
       "Apinya Sittipa","Wimolsiri  Sirimol"};

num[0][1] = 1.5;  num[0][2] = 2.0; num[0][3] = 2.5;
um[1][1] = 2.0; num[1][2] = 2.5;  num[1][3] = 3.0;                               
um[2][1] = 1.5; num[2][2] = 2.0;  num[2][3] = 2.5;                                
um[3][1] = 2.0; num[3][2] = 2.5;    num[3][3] = 3.0;                               
um[4][1] = 2.0; num[4][2] = 2.5;    num[4][3] = 3.0;                               
er of  Student :");

e;i=i+1)

nt no. %d  is %s t has num.",i+1,name[i]);
4;j++)
  ",num[i][j]);
ตั่อเรีแปรอัก่เขระ ลในหน่วยความจำา
ว ยกแทนพื้นที ก็บข้อมู
ตัว แปร หมายถึงชื
มีชนิดของข้อมูล หรือแบบของตัวแปรคือ char, int, long,
float, double, unsigned int, unsigned long int, 
• การกำา หนดตัว แปร ทำา ได้ 2 แบบ คือ
  1. กำาหนดไว้นอกกลุ่มคำาสั่ง หรือฟังก์ชัน เรียกตัวแปร
นี้ว่า Global Variable กำาหนดไว้นอกฟังก์ชัน ใช้งานได้ทั้ง
โปรแกรม มีค่าเริ่มต้นเป็น 0 (กรณีไม่ได้กำาหนดค่าเริ่มต้น)
 
2. กำาหนดไว้ในกลุ่มคำาสั่ง หรือฟังก์ชัน เรียกตัวแปรนี้
ว่า Local Variable กำาหนดไว้ภายในฟังก์ชัน ใช้งานได้
ภายในฟังก์ชันนั้น และไม่ถูกกำาหนดค่าเริ่มต้นโดยอัตโนมัติ
• การประกาศตัว แปร มีล ัก ษณะดัง นี้
ชนิดตัวแปร ชื่อตัวแปร , ชื่อตัวแปร , ชื่อตัวแปร,.....;
ตัวอักษรขนาด 1 ตัว โดยใช้ 
เนื้อทีในการเก็บ 1 ไบต์ ตัวอย่างตัวแปรชนิดนี้ เช่น ‘A’ , ‘b’ ,
่
‘1’ , ‘?’
 
2. ตัวแปรแบบ integer เป็นตัวแปรที่ใช้สำาหรับการเก็บ
ค่าตัวเลขที่เป็นจำานวนเต็มที่มีค่าระหว่าง -32768 ถึง 32767 ใช้
เนื้อทีในการเก็บ 2 ไบต์ ตัวอย่างตัวแปรชนิดนี้ เช่น 5 -10
่
2534
   3. ตัวแปรแบบ long เป็นตัวแปรที่เก็บค่าเป็นจำานวนเต็มที่
มีจำานวนไบต์เป็น 2 เท่าของจำานวน
เดิม (มักจะใช้เป็นคำานำาหน้าตัวแปร เช่น long int )
 
4. ตัวแปรแบบ float เป็นตัวแปรที่ใช้เก็บข้อมูลที่เป็นเลข
ทศนิยม โดยจะเก็บอยู่ในรูป a.b x 10e
ใช้พื้นที่ในการเก็บ 4 ไบต์ มีค่าระหว่าง 3.4E-38 ถึง 3.4E+38
หรือ แสดงเป็น เลขทศนิยมได้ไม่เกิน 6 ตำาแหน่ง ตัวอย่างตัวแปร
ชนิดนี้ เช่น 10.625 -6.67 
   5. ตัวแปรแบบ double เป็นตัวแปรที่เก็บข้อมูลทีเป็นเลข
่
ทศนิยมเหมือนกับ float แต่จะใช้พื้นที่ในการเก็บมากกว่าเดิม 2
เท่า คือมีขนาด 8 ไบต์ มีค่าระหว่าง 1.7E-308 ถึง 1.7E+308
   6. ตัวแปรแบบ unsigned แสดงว่าเป็นตัวแปรที่เก็บค่า
ตัว อย่า งที่ 1

บรรทัดที่
บรรทัดที่
บรรทัดที่
บรรทัดที่
บรรทัดที่
บรรทัดที่
บรรทัดที่
บรรทัดที่
บรรทัดที่
บรรทัดที่

1. #include<stdio.h>
2. #define PI 3.14159
3. int area; /* global variable */
4. main( )
5. { float radius; /* local variable */
6. float process() /* function declaration */
7. printf (“Radius = ?”); scanf (“%f”,radius);
8. process( );
9. printf(“Area = %f”,area);
10. printf(“%f”,radius);

บรรทัดที่
บรรทัดที่
บรรทัดที่
บรรทัดที่
บรรทัดที่
บรรทัดที่

11. float process( )
12. { float radius; /* local variable */
13 printf(“Radius=?”); scanf (“%f”,radius);
14 area=PI*radius*radius;
15 printf(“Area = %f”,area);
16 printf(“%f”,radius);
ตัว อย่า งที่ 2 int a ;

หมายความว่า ประกาศตัวแปร a เป็นตัวแปรที่ใช้สำาหรับเก็บค่าที่เป็น
เลขจำานวนเต็มที่มีค่าอยู่ระหว่าง -35768 ถึง 32767
ตัวอย่างที่ 3 int num1=8;
หมายความว่า ประกาศตัวแปร num1 เป็นตัวแปรที่เก็บค่าตัว
เลขจำานวนเต็ม โดยให้ค่าเริ่มต้นเท่ากับ 8

ตัว อย่า งที่ 4 float money,price ;

หมายความว่า money และ price เป็นตัวแปรที่ใช้สำาหรับเก็บค่าที่
เป็นเลขทศนิยม โดยจะให้ตำาแหน่งทศนิยมได้ไม่เกิน 6 หลัก

ย่า งที่ 5 char ch=’A’

วามว่า ประกาศตัวแปร ch เป็นตัวแปรที่เก็บค่าตัวอักษรเพียง 1 ตัว คือ ตัวอักษร ‘A’
ย่า งเพิ่ม เติม
a,b,c,d; /* ตัวแปร a,b,c,d เป็นตัวแปรชนิด character */
gned e; /* ตัวแปร e เป็นตัวแปรชนิด unsigned int */
key = ?A?; /* ตัวแปร key เป็นตัวแปรชนิด character มีค่า ?A? */
name = ?SAM? /* ตัวแปร name เป็นตัวแปรชนิด character มีค่า”SAM
รายชื่อ
สมาชิก
              จัดทำาโดย
1.นายขรรค์เพชร   นาควรรณ  
เลขที่ 1 ชั้น ม.5/4
2. นายสหพชร   เพชรบรม        
 เลขที่ 2 ชั้น ม.5/4
3. นายจักกฤษ  ประทุมนันท์       เลข
ที่ 4 ชั้น ม.5/4
4. นายสถาพร  กาญจนะ            
  เลขที่ 8 ชั้น ม.5/4
5. นายนิธินนท์   วิมลพันธ์         
ั
 เลขที่ 10 ชั้น ม.5/4
6. นายเอกพล  ปุณการี                

งาน

  • 1.
  • 2.
    ตัว แปรชุด ตัว แปรชุด (array)  เป็นกลุ่มของข้อมูลชนิดเดียวกันที่กำำหนดให้จัดเก็บเรีย ลำำดับตำมจำำนวนที่ต้องกำร มี ชื่อตัวแปรเหมือนกันต่ำงกันที่ดัชนี(index)ระบ งของตัวแปรในชุดนั้น กำรเก็บข้อมูลเป็นตัวแปรชุด ทำำให้งำยในกำรตั้งชื่อตัว ่ มำก เข้ำถึงข้อมูลได้เร็ว แต่ถ้ำเก็บข้อมูลไม่ครบจะทำำให้เสียเนื้อที่หน่วยควำมจ จำำเป็น
  • 3.
     ประเภทของตัว แปรชุด อำจแบ่งตำมลัก ษณะ ของจำ มิติ (one เลขของดัarrays หรื 1. ตัวแปรชุด 1ำ นวนตัวdimension ช นี คือ อ single dimension arrays)  เป็นตัวแปรชุดที่มีตัวเลขแสดงขนำดเป็น เลขตัวเดียว เช่น word[20] ,num[25] , x[15] 2. ตัวแปรชุดหลำยมิติ (multi-dimension arrays) เป็น ตัวแปรชุดที่ชื่อมีตัวเลขแสดงขนำดเป็นตัวเลขหลำยตัว ที่นิยม ใช้กนมี 2 มิติ กับ 3 มิติ ั                 2.1 ตัวแปรชุด 2 มิติ มีเลขแสดงขนำด 2 ตัว เช่น a[3][5] , name[5][6]                 2.2 ตัวแปรชุด 3 มิติ มีเลขแสดงขนำด 3 ตัว เช่น a[3][5][6] , name[5][6][8]
  • 4.
     กำรประกำศและกำร กำำ หนดค่ำ ตัด 1 มิติ ใช้ 1 มิ ดั   กำรประกำศตัวแปรชุว แปรชุด คำำสั่ง ต ิงนี้                 Type arrayname[size]; type  คือ ชนิดของตัวแปร เช่น int char float  arrayname คือชื่อของตัวแปรarray size คือ ขนำดของตัวแปร  int  a[12];         เป็นกำรประกำศตัวแปร array ชื่อ a เป็น array ของข้อ สมำชิกได้ จำำนวน 12 ตัว คือ a[0] a[1] a[2] a[3] … a[11] โดยมีกำรจองเน ำมจำำเปรียบเทียบได้ดังรูป
  • 5.
    โดยสมำชิกแต่ละตัวจะใช้เนื้อที่เท่ำกับตัวแปร ประเภท integer ที่ไม่ได้อยู่ใน array  คือ 2 ไบต์ต่อ ตัวแปร 1 ตัวดังนั้นเนื้อที่หน่วยควำมจำำที่ใช้ทั้งหมดจึงเท่ำกับ จำำนวนสมำชิก คูณ ด้วย 2 ไบต์ กำรกำำหนดค่ำให้แก่ ตัวแปร array  อำจกำำหนดพร้อมกับกำรประกำศ เช่น                 int  num1[3] ={56,25,89}; เป็นกำรประกำศ ว่ำตัวแปร num1 เป็น array ประเภท integer มีสมำชิก 3 ตัวโดย num1[0] = 56; ส่วน num1[1]=25; และ num1[2]=89;                 แต่ไม่สำมำรถประกำศว่ำ  int value[ ] ; โดย ถ้ำจะไม่ระบุจำำนวนสมำชิก ต้องระบุค่ำของแต่ละสมำชิกที่ถก ู ล้อมรอบด้วย { }โดยระหว่ำงสมำชิกคั่นด้วย เครื่องหมำย , (คอมม่ำ) ดัง ตัวอย่ำง inta[]={200,230};                                  
  • 6.
      หรือ ประกำศตัวแปร โดยยังไม่กำำหนดค่ำเช่น int money[5]; แล้วไปกำำหนดค่ำให้สมำชิกแต่ละตัวใน ภำยหลัง เช่น money[0] = 250;          money[4] = 500;                  float  num[5]; เป็นกำรประกำศ ตัวแปร array ของ ตัวแปร จำำนวนที่มีทศนิยมได้ คือ float ในชื่อ num ซึ่งมีสมำชิกได้ 5 ตัว คือ num[0] num[1]… num[4] มีกำรจองเนื้อที่ ในหน่วยควำมจำำเปรียบเทียบได้ ดังรูป
  • 7.
    คือ num[0] มีค่าเป็น 2.00 และ num[3] มีค่า เป็น 55.52 ส่วน num[1] , num[2] และ num[4] ยังไม่มีค่า ส่วนการกำาหนดค่าของตัวแปร array ประเภท float เป็นไป ในลักษณะเดียวกับarray ประเภท integer ประกาศพร้อมกับ กำาหนดค่าให้เลยโดยล้อมรอบด้วย {  }  และค่าของสมาชิก แต่ละตัวคั่นดัวย , (คอมม่า)เช่น                 Float num[5] = {2.00,1.25,5.36,6.32,246.10};  โดยค่าของ num[0] = 2.00  ส่วนของ num[1] = 1.25 ค่าของ num[2] = 5.36 ค่าของ num[3] = 6.32 และ num[4] = 246.10  ตามลำาดับ หรือประกาศตัวแปรก่อนแล้วไปกำาหนด ค่าภายหลัง เช่น                 float salary[10];                 salary[0] = 25000.00;                 salary[9] = 55600.00;                   char a[12];  เป็นการประกาศ ตัวแปร array ชื่อ a เป็น array ของ ตัวแปรอักขระ char มี สมาชิกได้ 12 ตัว คือ a[0] a[1] … a[11] โดยการใช้เนื้อที่
  • 8.
    โดยที่สมาชิกแต่ละตัวใช้เนือที่ 1 ไบต์ดัง ้ นั้น array ประเภท char ชุดนี้ ใช้เนื้อที่เป็น12 x 1 คือ 12 bytes ส่วนการกำาหนดค่าให้ กับ array  ประเภทนี้ จะพิจารณา ในหัวข้อต่างหากเพราะ เป็นตัวแปรประเภท ข้อความ (string variable) ซึ่งมี ลักษณะแตกต่างไปจากพวก integer และ float  
  • 9.
    าศและการกำา หนดค่า ตัวแปรชุด 2 มิต ิ (two dimension arrays) array 2 มิติ มีการจัดการจัดเก็บเปรียบเทียบคล้ายกับ ตาราง 2 มิติ มิติที่ 1 เปรียบเหมือนแถว(row) ของตาราง มิติที่ 2 เปรียบคล้ายกับสดมภ์(column)ของ ตาราง  ดังรูป รูปนี้เป็น array ของ x[6] ซึ่งมีสมาชิกทั้งหมด 6 ตัว เปรียบเหมือนเก็บไว้ใน ตารางช่องละ 1 ตัว ดังนั้นจำานวนสมาชิกจะมีจำานวน เท่ากับ จำานวนแถว คูณ จำานวนสดมภ์ โดยหน่วยความจำาที่ใช้เท่ากับหน่วยความจำาที่ใช้โดยตัวแปร แต่ละตัว คูณ ด้วยจำานวนตัวแปรทั้งหมดใน array เช่น ในรูป ถ้า เป็น array ของ จำานวนเต็ม สมาชิกแต่ละตัวใช้หน่วยความจำา 2 ไบต์ หน่วย ความจำาที่ใช้ทั้ง คือ 2 x 6 คือ 12 ไบต์                    เราอาจพิจารณา  array 2 มิติ ว่าเป็น array ของ array  1 มิติ ดังรูป
  • 10.
    สมาชิกใน array 2 มิติ ที่ชื่อ table ดังนั้น array ชื่อ table จะมีสมาชิก ทั้งหมดคือ สมาชิกของ array ทั้งสาม คือ table[0][0] , table[0][1] …  ถึง table[2][3] ทั้งหมด 12 ตัว โดยในสมาชิกเหล่านี้  บางตำาแหน่งมี ข้อมูลแล้ว เช่น table[0][0] มีขอมูลเป็น 10 โดยการประกาศตัวแปร array 2 ้ มิติ มีรูปแบบ คือ type arrayname [r] [c];                 เมื่อ          type คือ ชนิดของข้อมูล เช่น int , float ,char                                 arrayname คือ ชื่อของ array เช่น num , word ,x                                 r , c   คือ จำานวนแถวและจำานวนสดมภ์ ตามลำาดับ             โดยตัวเลขกำากับตำาแหน่ง(ดัชนี) เป็น ในแถว r เป็น  0,1,2 ... , r-1 ในสดมภ์ c เป็น 0,1,2 ... , c-1 เช่น  int num[3][4]; หมายความว่า มี array ของ integer ที่มีจำานวน 3 แถว 4 สดมภ์ ดังนั้นมีสมาชิก ทั้งหมด 12 ตัว เริ่มด้วย num[0][0] , num[0] [1] ,num[0][2],num[0][3],num[1][0],…,num[2][3] การกำาหนดค่าอาจกำาหนดในขั้นตอนประกาศตัวแปร เช่น                                 char word[ ][ ] = {“Bodin”,”decha”,”Computer”,”Pentium”}; หมายความว่า word เป็นตัวแปร array  2 มิติ ขนาด 4 x 9 ของสมาชิกที่เป็น อักขระ โดยแต่ละสมาชิก มีขนาด 1 ไบต์ โดย word[0] = “Bodin”   word[1] = "dehca”  word[2] = "Computer" ส่วน word[3] = “Pentium"                 หรือ ประกาศ โดยยังไม่กำาหนดค่า แล้วกำาหนดค่าภายหลังเช่น                 int  num[2][2];
  • 11.
    วแปร array 3 มิต ิ  มีการประกาศดังนี้ e  arrayname[p] [r][c];          type คือ ชนิดของตัวแปร เช่น int ,float,char          arrayname คือชื่อของตัวแปร          r,c,p คือตัวเลขแสดงจำานวนในมิติที่ 1 มิติที่ 2 และมิติที่ 3 ของ array  ตามลำาดับ วเลขกำากับตำาแหน่ง(ดัชนี)เป็นดังนี้          p  เป็น    0,1,2 .. , p-1          r   เป็น    0,1,2, ... ,r-1          c   เป็น    0,1,2 ... ,c-1 ณะของ array 3 มิติ อาจเปรียบเทียบเพื่อ ามเข้าใจ ว่าเป็น arrays of arrays ดังรูป
  • 12.
  • 13.
    เช่น table[0][0][0] ถึง table[0][0][0] เป็นสมาชิกใน table[0] [0] โดย table[0][0] ถึง table[0][4] เป็นสมาชิก ใน table[0] และ table[0] ถึง table[2] เป็นสมาชิกใน table (ซึ่งก็ คือ table[3[[5][4] ) โดยจำานวนสมาชิกใน array เท่ากับ r *c *p เช่น array  ในรูปมีสมาชิกทั้งหมด 3 * 5 * 4 คือ  60 สมาชิก ส่วน การกำาหนดค่าของสมาชิกของ array แต่สมาชิกก็เป็นทำานองเดียว กับ array 1 มิติ และ array 2 มิติ เช่นเดียวกับจำานวนหน่วยความจำาที่ใช้ก็ คือหน่วยความจำาที่สมาชิกแต่ละตัวใช้ คูณด้วยจำานวนสมาชิกทั้งหมด ทำานองเดียวกัน array ยังสามารถ มี array 4 มิติ ฯลฯ ได้ แต่ปกติไม่ใคร่ ได้ใช้และเขียนรูปอธิบายได้ยาก เขียนได้แต่ในรูปสัญลักษณ์  type arrayname[ ]...[ ] บางคนอาจอธิบายสมาชิกของ array 3 มิติ ดังรูป
  • 14.
    ตัว อย่า ง ให้นักเรียนศึกษาโปรแกรม array5_1.c แล้วพิจารณาว่าโปรแกรมนี้ จะทำางานอย่างใด และค่าต่าง ๆใน array  เป็นเท่าใดบ้าง แล้วลอกโปรแกรม แล้วคอมไพล์และให้โปรแกรมทำางาน แล้วพิจารณาว่าคาดคะเนถูกต้องหรือไม่ /* array5_1.c */ # include <stdio.h> # include <conio.h> main() {     clrscr();     float  num[50];     float sum;     int i,time;     printf("n Enter the time of input that you want.  :");     scanf("%d",&time);     sum = 0;     for (i=0;(i+1)<=time;i++)     {         printf("Please type the floating number for %d round :",i+1);         scanf("%f",&num[i]);         sum = sum + num[i];     }     printf("n  Input = %d time sum.of them = %4.2f   average of data is %4.2f",time ,sum ,sum/time); }
  • 15.
    กษาโปรแกรม array5_2.c แล้วพิจารณาว่าโปรแกรมนี้จะทำางานอย่างใด และค่าต่าง ๆใน array  เป็นเท่าใ แกรมทำางานแล้วพิจารณาว่าคาดคะเนถูกต้องหรือไม่ { "Chattam Sermsub","Sompol Somsuk","Kanokporn Kanok",        "Apinya Sittipa","Wimolsiri  Sirimol"}; num[0][1] = 1.5;  num[0][2] = 2.0; num[0][3] = 2.5; um[1][1] = 2.0; num[1][2] = 2.5;  num[1][3] = 3.0;                                um[2][1] = 1.5; num[2][2] = 2.0;  num[2][3] = 2.5;                                 um[3][1] = 2.0; num[3][2] = 2.5;    num[3][3] = 3.0;                                um[4][1] = 2.0; num[4][2] = 2.5;    num[4][3] = 3.0;                                er of  Student :"); e;i=i+1) nt no. %d  is %s t has num.",i+1,name[i]); 4;j++)   ",num[i][j]);
  • 16.
    ตั่อเรีแปรอัก่เขระ ลในหน่วยความจำา ว ยกแทนพื้นทีก็บข้อมู ตัว แปร หมายถึงชื มีชนิดของข้อมูล หรือแบบของตัวแปรคือ char, int, long, float, double, unsigned int, unsigned long int,  • การกำา หนดตัว แปร ทำา ได้ 2 แบบ คือ   1. กำาหนดไว้นอกกลุ่มคำาสั่ง หรือฟังก์ชัน เรียกตัวแปร นี้ว่า Global Variable กำาหนดไว้นอกฟังก์ชัน ใช้งานได้ทั้ง โปรแกรม มีค่าเริ่มต้นเป็น 0 (กรณีไม่ได้กำาหนดค่าเริ่มต้น)   2. กำาหนดไว้ในกลุ่มคำาสั่ง หรือฟังก์ชัน เรียกตัวแปรนี้ ว่า Local Variable กำาหนดไว้ภายในฟังก์ชัน ใช้งานได้ ภายในฟังก์ชันนั้น และไม่ถูกกำาหนดค่าเริ่มต้นโดยอัตโนมัติ • การประกาศตัว แปร มีล ัก ษณะดัง นี้ ชนิดตัวแปร ชื่อตัวแปร , ชื่อตัวแปร , ชื่อตัวแปร,.....;
  • 17.
    ตัวอักษรขนาด 1 ตัวโดยใช้  เนื้อทีในการเก็บ 1 ไบต์ ตัวอย่างตัวแปรชนิดนี้ เช่น ‘A’ , ‘b’ , ่ ‘1’ , ‘?’   2. ตัวแปรแบบ integer เป็นตัวแปรที่ใช้สำาหรับการเก็บ ค่าตัวเลขที่เป็นจำานวนเต็มที่มีค่าระหว่าง -32768 ถึง 32767 ใช้ เนื้อทีในการเก็บ 2 ไบต์ ตัวอย่างตัวแปรชนิดนี้ เช่น 5 -10 ่ 2534    3. ตัวแปรแบบ long เป็นตัวแปรที่เก็บค่าเป็นจำานวนเต็มที่ มีจำานวนไบต์เป็น 2 เท่าของจำานวน เดิม (มักจะใช้เป็นคำานำาหน้าตัวแปร เช่น long int )   4. ตัวแปรแบบ float เป็นตัวแปรที่ใช้เก็บข้อมูลที่เป็นเลข ทศนิยม โดยจะเก็บอยู่ในรูป a.b x 10e ใช้พื้นที่ในการเก็บ 4 ไบต์ มีค่าระหว่าง 3.4E-38 ถึง 3.4E+38 หรือ แสดงเป็น เลขทศนิยมได้ไม่เกิน 6 ตำาแหน่ง ตัวอย่างตัวแปร ชนิดนี้ เช่น 10.625 -6.67     5. ตัวแปรแบบ double เป็นตัวแปรที่เก็บข้อมูลทีเป็นเลข ่ ทศนิยมเหมือนกับ float แต่จะใช้พื้นที่ในการเก็บมากกว่าเดิม 2 เท่า คือมีขนาด 8 ไบต์ มีค่าระหว่าง 1.7E-308 ถึง 1.7E+308    6. ตัวแปรแบบ unsigned แสดงว่าเป็นตัวแปรที่เก็บค่า
  • 19.
    ตัว อย่า งที่1 บรรทัดที่ บรรทัดที่ บรรทัดที่ บรรทัดที่ บรรทัดที่ บรรทัดที่ บรรทัดที่ บรรทัดที่ บรรทัดที่ บรรทัดที่ 1. #include<stdio.h> 2. #define PI 3.14159 3. int area; /* global variable */ 4. main( ) 5. { float radius; /* local variable */ 6. float process() /* function declaration */ 7. printf (“Radius = ?”); scanf (“%f”,radius); 8. process( ); 9. printf(“Area = %f”,area); 10. printf(“%f”,radius); บรรทัดที่ บรรทัดที่ บรรทัดที่ บรรทัดที่ บรรทัดที่ บรรทัดที่ 11. float process( ) 12. { float radius; /* local variable */ 13 printf(“Radius=?”); scanf (“%f”,radius); 14 area=PI*radius*radius; 15 printf(“Area = %f”,area); 16 printf(“%f”,radius);
  • 20.
    ตัว อย่า งที่2 int a ; หมายความว่า ประกาศตัวแปร a เป็นตัวแปรที่ใช้สำาหรับเก็บค่าที่เป็น เลขจำานวนเต็มที่มีค่าอยู่ระหว่าง -35768 ถึง 32767 ตัวอย่างที่ 3 int num1=8; หมายความว่า ประกาศตัวแปร num1 เป็นตัวแปรที่เก็บค่าตัว เลขจำานวนเต็ม โดยให้ค่าเริ่มต้นเท่ากับ 8 ตัว อย่า งที่ 4 float money,price ; หมายความว่า money และ price เป็นตัวแปรที่ใช้สำาหรับเก็บค่าที่ เป็นเลขทศนิยม โดยจะให้ตำาแหน่งทศนิยมได้ไม่เกิน 6 หลัก ย่า งที่ 5 char ch=’A’ วามว่า ประกาศตัวแปร ch เป็นตัวแปรที่เก็บค่าตัวอักษรเพียง 1 ตัว คือ ตัวอักษร ‘A’
  • 21.
    ย่า งเพิ่ม เติม a,b,c,d;/* ตัวแปร a,b,c,d เป็นตัวแปรชนิด character */ gned e; /* ตัวแปร e เป็นตัวแปรชนิด unsigned int */ key = ?A?; /* ตัวแปร key เป็นตัวแปรชนิด character มีค่า ?A? */ name = ?SAM? /* ตัวแปร name เป็นตัวแปรชนิด character มีค่า”SAM
  • 22.
    รายชื่อ สมาชิก              จัดทำาโดย 1.นายขรรค์เพชร   นาควรรณ   เลขที่ 1 ชั้น ม.5/4 2. นายสหพชร   เพชรบรม          เลขที่ 2 ชั้น ม.5/4 3. นายจักกฤษ  ประทุมนันท์       เลข ที่ 4 ชั้น ม.5/4 4. นายสถาพร  กาญจนะ               เลขที่ 8 ชั้น ม.5/4 5. นายนิธินนท์   วิมลพันธ์          ั  เลขที่ 10 ชั้น ม.5/4 6. นายเอกพล  ปุณการี