ตัวแปรชุด (Array) หมายถึงตัวแปรที่มีชื่อเดี่ยว ซึ่งมีตัวเลขกำกับชื่อตัวแปรนั้น ๆ โดยสามารถเก็บข้อมูลได้ในลักษณะเดียวกับตัวแปรหลายตัว
Array หมายถึง ตัวแปรชุดที่ใช้เก็บตัวแปรชนิดเดียวกันไว้ด้วยกัน เช่น เก็บ ข้อมูล char ไว้กับ char เก็บ int ไว้กับ int ไม่สามารถเก็บข้อมูลต่างชนิดกันได้
เช่น char กับ int เรียก array อีกอย่างว่าหน่วยความจำแบ่งเป็นช่อง การกำหนดสมาชิกชิกของ array จะเขียนภายในเครื่องหมาย [ ]
ตัวแปรชุด 1 มิติ (One Dimension)
เป็นตัวแปรชุดที่มีเลขแสดงตำแหน่งเพียงตัวเดียว
รูปแบบ ชนิดข้อมูล ชื่อตัวแปร[จำนวนสมาชิก]
ลักษณะของการใช้พื้นที่ในหน่วยความจำของตัวแปรที่มีชนิดข้อมูลต่างกัน จะใช้พื้นที่ในหน่วยความจำไม่เท่ากัน เช่น
ตัวแปรชุดที่มีชนิดเป็น int ใช้พื้นที่ในหน่วยความจำ 2 ไบต์ ต่อสมาชิกแต่ละตัว
ตัวแปรชุดที่มีชนิดเป็น float ใช้พื้นที่ในหน่วยความจำ 4 ไบต์ ต่อสมาชิกแต่ละตัว
ตัวแปรชุดที่มีชนิดเป็น char ใช้พื้นที่ในหน่วยความจำ 1 ไบต์ ต่อสมาชิกแต่ละตัว
ในตัวแปรชุดนั้นดัชนี (index) ของตัวสมาชิกจะเริ่มที่ 0 เสมอ ดังตัวอย่างต่อไปนี้
ตัวอย่างที่ 1
ตัวอย่างที่ 2
ตัวอย่างที่ 3
ตัวอย่างที่ 5 char c[9] = “coputer”
ตัวอย่างที่ 6 char c[9] = {‘c’, ‘o’ , ‘m’ , ‘u’ , ‘t’ , ‘ e’ , ‘r’ , ‘o’}
ตัวอย่างที่ 7
ตัวอย่างที่ 8 char Str[10];
int a[5];
หมายถึง a เป็นอาร์เรย์ที่มี 5 สมาชิก โดยสมาชิกทุกตัวเก็บค่าเป็นจำนวนเต็ม และสมาชิกทุกตัวใช้พื้นที่ในหน่วยความจำ 2 ไบต์
float salary[5];
หมายถึง salary เป็นอาร์เรย์ที่มี 5 สมาชิก โดยสมาชิกทุกตัวเก็บค่าเป็นทศนิยม
และสมาชิกทุกตัวที่ใช้พื้นที่ในหน่วยความจำ 4 ไบต์
และสมาชิกทุกตัวที่ใช้พื้นที่ในหน่วยความจำ 4 ไบต์
char choice[5];
หมายถึง choice เป็นอาร์เรย์ที่มี 5 สมาชิกโดยสมาชิกทุกตัวเก็บค่าเป็นตัวอักษร
1 อักขระ และสมาชิกทุกตัวใช้พื้นที่ในหน่วยความจำ 1 ใบต์
1 อักขระ และสมาชิกทุกตัวใช้พื้นที่ในหน่วยความจำ 1 ใบต์
การเข้าถึงสมาชิกของอาร์เรย์และข้อมูลที่เก็บอยู่
จากตัวอย่างที่ 1 int a[5]; เป็นการจองพื้นที่ในหน่วยความจำให้กับตัวแปร a ขนาด 5 สมาชิก เป็นอาร์เรย์ 1 มิติ โดยมีสมาชิกดังนี้ a[0], a[1], a[2], a[3], a[4]
การอ้างถึงหรือการเรียกใช้สมาชิกของอาร์เรย์ ใช้วิธีการเขียนชื่อของอาร์เรย์แล้วตามด้วยดัชนี (index) เช่น ต้องการอ้างถึงสมาชิกตัวที่สามซึ่งมีเลขดัชนีเป็น 2 ให้เขียน a[2] ดังตัวอย่างต่อไปนี้
a[0] หมายถึง การอ้างถึงสมาชิก a[0] เก็บค่า 15 ไว้
a[1] หมายถึง การอ้างถึงสมาชิก a[1] เก็บค่า 250 ไว้
a[2] หมายถึง การอ้างถึงสมาชิก a[2] เก็บค่า 8 ไว้
a[3] หมายถึง การอ้างถึงสมาชิก a[3] เก็บค่า 87 ไว้
a[4] หมายถึง การอ้างถึงสมาชิก a[3] เก็บค่า 42 ไว้
เข้าถึงโดยการใช้เครื่องหมายจุด ( . ) ในการเชื่อมต่อ
การกำหนดค่าให้กับอาร์เรย์
การกำหนดค่าให้กับอาร์เรย์ในภาษาซีมี 2 ลักษณะ คือ
1. การกำหนดค่าให้กับสมาชิกทุกตัว
2. การกำหนดค่าให้กับสมาชิกตัวใดตัวหนึ
1. การกำหนดค่าให้กับสมาชิกทุกตัว
เป็นการกำหนดค่าให้กับสมาชิกทุกตัวในขณะที่ประกาศชนิดตัวแปร
1.1 เป็นการกำหนดค่าให้กับอาร์เรย์ที่มีค่าเป็นตัวเลข
รูปแบบ ชนิดข้อมูล ชื่อตัวแปร[จำนวนสมาชิก] = {value-list}
value-list หมายถึง ค่าคงที่ที่ต้องการกำหนดให้กับอาร์เรย์ โดยแต่ละค่าต้องคั่นด้วยเครื่องหมายคอมม่า และทั้งหมดต้องเขียนอยู่เครื่องหมายวงเล็บปีกกา {} ดังตัวอย่างต่อไปนี้
ตัวอย่างที่ 4
int a [10] = {1,2,3,4,5,6,7,8,9,10};
เป็นการกำหนดค่าให้กับอาร์เรย์ a โดย a[0] เก็บค่า 1 a[1] เก็บค่า 2 ไปเรื่อย ๆจนถึง a[9] เก็บค่า 10 ไว้
1.2 การกำหนดค่าให้กับอาร์เรย์ ชนิด character
การกำหนดค่าให้กับอาร์เรย์ที่เป็น character ในภาษาซีนั้นแตกต่างจากอาร์เรย์ของโปรแกรมภาษาซีอื่น ๆ กล่าวคือ สมาชิกของอาร์เลย์แต่ละตัวในโปรแกรมภาษาอื่น ๆ นั้น สามารถเก็บได้หลายตัวอักษร แต่สมาชิกของอาร์เรย์แต่ละตัวของภาษาซี สามารถเก็บได้เพียงตัวอักษรเดียว มี 2 วิธี ดังนี้
1.2.1 การกำหนดค่าเป็นข้อความ
รูปแบบ ชนิดข้อมูล ชื่อตัวแปร[จำนวนสมาชิก] = “ข้อความ”
เป็นการกำหนดค่าให้กับอาร์เรย์ c[0] เก็บค่า c c[1] เก็บค่า o ไปเรื่อย ๆ จนถึง c[7] เก็บค่า r และ c[8] เก็บค่า \o โดยเครื่องจะกำหนดให้ c[8] เก็บค่า \o ให้เองโดยอัตโนมัติ เพื่อเป็นการสิ้นสุข้อความ
1.2.1 การกำหนดค่าครั้งละหลายตัว
รูปแบบ ชนิดข้อมูล ชื่อตัวแปร[จำนวนสมาชิก] = {value-list}
value-list หมายถึง อักขระที่ต้องการกำหนดให้กับอาร์เรย์ โดยอักขระแต่ละตัวต้องเขียนอยู่ในเครื่องหมาย apostrophe (;) และแต่ละค่าต้องคั่นด้วยเครื่องหมายคอมม่า ทั้งหมดต้องเขียนอยู่เครื่องหมายวงเล็บปีกกา {} ดังตัวอย่างต่อไปนี้
เป็นการกำหนดค่าให้กับอาร์เรย์ c[0] เก็บค่า c c[1] เก็บค่า o ไปเรื่อย ๆ จนถึง c[7] เก็บค่า r และ c[8] เก็บค่า \o โดยต้องกำหนดให้ c[8] เก็บค่า \o เพื่อเป็นการสิ้นสุดข้อความ
การกำหนดค่าให้กับอาร์เรย์ สามารถกำหนดโดยไม่ต้องระบุจำนวนสมาชิกก็ได้ เครื่องจะเตรียมพื้นที่ไว้ให้เท่ากับจำนวนของข้อมูลจริง เช่น
int num[ ] = {1,2,3,4,5}
char str[ ] = “student”
การกำหนดค่าให้กับสมาชิกตัวใดตัวหนึ่ง
เป็นการกำหนดค่าให้กับสมาชิกเฉพาะตัว ดังนั้นสมาชิกตัวอื่นไม่ถูกกำหนดค่า
int num[30];
num[22] = 187;
บรรทัดแรก เป็นการประกาศชนิดตัวแปร num เป็นตัวแปรชุดที่มี 30 สมาชิก เก็บค่าเป็นจำนวนเต็ม
บรรทัดที่สอง เป็นการกำหนดค่าให้สมาชิกของ num ที่มีตัวชี้ (index) 22 เก็บค่า 187
Str[7] = ‘A’;
บรรทัดแรก เป็นการประกาศชนิดตัวแปร str ตัวแปรชุดที่มี 30 สมาชิก เก็บค่าเป็นตัวอักษร
บรรทัดที่สอง เป็นการกำหนดค่าให้สมาชิกของ str ที่มีตัวชี้ (index) 7 เก็บค่า A
โปรแกรมตัวอย่าง Array 1 มิติ
Ex1 :
1 //array1d.c
2 #include <stdio.h>
3 #include <conio.h>
4
5 int a[] = {20,30,40,50,60};
6 void main()
7 {
8 int t = 0,n=0;
9 clrscr();
10 do {
11 t += a[++n];
12 printf ("Room %d has %3d pupils, \n", n+1, a[n]);
13 }
14 while (n<5);
15 printf (" ===\n");
16 printf ("Total no is %3d pupils \n", t);
17 getch();
18 }
ไม่มีความคิดเห็น:
แสดงความคิดเห็น