Skip to content
This repository was archived by the owner on Jan 2, 2023. It is now read-only.

Latest commit

 

History

History
65 lines (50 loc) · 3.28 KB

File metadata and controls

65 lines (50 loc) · 3.28 KB

Array

  • เหมือนกันทั้ง C และ C++

Array 1 มิติ

  • Array คือตัวแปรที่เก็บข้อมูลชนิดเดียวกันเป็นจำนวนมาก แต่ใช้ชื่อเดียวกัน
  • การเข้าถึง จะต้องระบุตำแหน่ง โดยตำแหน่งจะเริ่มนับตัวแรกเป็น 0
int numbers[50]; // ประกาศตัวแปร numbers ที่เก็บจำนวน 50 จำนวน
char vowels[] = { 'A', 'E', 'I', 'O', 'U' }; // ประกาศตัวแปร vowels ที่เก็บอักขระ 5 ตัว
char alphabets[26] = { 'A', 'B', 'C', 'D' }; // ประกาศตัวแปร alphabets ขนาด 26 ตัว แต่ระบุไว้เพียงแค่ 4 ตัวแรกเท่านั้น
  • เช่นเดียวกับตัวแปรทั่วไป ค่าในช่องที่ยังไม่ได้กำหนดอาจเป็นค่าขยะ ก่อนนำมาใช้ควรจะเซ็ตค่าให้เรียบร้อย
  • สามารถเข้าถึงสมาชิกของ array ได้ตามตัวอย่าง
printf("%c", vowels[3]); // เข้าถึงสมาชิกตัวที่ 4 ของ vowels ('O')
alphabets[4] = 'E'; // เปลี่ยนสมาชิกตัวที่ 5 ของ vowels เป็น 'E'
  • สามารถเข้าถึงสมาชิกทุกตัวได้โดยการใช้ loop
for (int i = 0; i < 5; i++) // i = 0, 1, 2, 3, 4
    printf("%c ", vowels[i]); // Output: A E I O U 

Array 2 มิติ

  • สามารถคิดได้ว่าเป็น array ที่มี array อยู่ข้างในอีกทีหนึ่ง
// ประกาศตัวแปร roomNumbers ที่มี array ย่อย 4 array โดยแต่ละ array มีสมาชิก 5 ตัว
int roomNumbers[4][5] = 
{
    { 101, 102, 103, 104, 105 },
    { 201, 202, 203, 204, 205 },
    { 301, 302, 303, 304, 305 },
    { 401, 402, 403, 404, 405 }
};
  • การเข้าถึงสมาชิกของ array จะต้องระบุตำแหน่งสองครั้ง
  • ครั้งแรก คือตำแหน่งของ array ย่อยที่ต้องการเข้า
  • ครั้งที่สอง คือตำแหน่งของสมาชิกภายใน array ย่อย
printf("Number of last room on third floor is %d.", roomNumbers[2][4]);
// 2 ตัวแรก ระบุเข้าถึง array ย่อยที่ 3 (301, 302, ...)
// 4 ระบุเข้าถึงสมาชิกของ array ย่อยที่กำลังสนใจ ที่ตำแหน่งที่ 5 (305)
  • การเข้าถึงสมาชิกทุกตัว ใช้ loop 2 ชั้น
for (int i = 0; i < 4; i++)
{
    for (int j = 0; j < 5; j++)
        printf("%d ", roomNumbers[i][j]);
    printf("\n");
}