Array Definition
- เป็นตัวแปรชนิดหนึ่ง
- สามารถเก็บข้อมูลหลายๆ ค่าได้ในตัวแปรเดียว
- ต้องระบุชนิดของข้อมูลตอนประกาศ
- ต้องระบุขนาดของข้อมูลที่ต้องเก็บ

Syntax
int num[];
int num[5];
int num[] = {1, 2, 3, 4, 5};
Type
- สามารถใช้ type ได้เหมือนตัวแปรทั่วไแ
char text[] = { 'a', 'b', 'c' };
int num[] = { 1, 2, 4 };
float dec[] = { 1.00, 2.11, 4.14 };
Index of arrays
- ใน Array สามารถเก็บข้อมูลเป็นชุดได้ โดยแต่ละตำแหน่งจะเก็บข้อมูลได้ตำแหน่งละ 1 ข้อมูล
- และการเข้าถึงข้อมูล ต้องระบุเป็นตำแหน่ง (index) โดยเริ่มที่ 0 (ตำแหน่งแรก)
- ตำแหน่งสุดท้าย คือ ขนาดของ Array - 1
sizeof()
- Array จะมี function ช่วย สำหรับไว้หาขนาดของ array นั้น
- แต่ sizeof(array) จะคืนค่าเป็นจำนวน Byte ทั้งหมดของ array นั้น
- ดังนั้นต้องหารด้วยข้อมูลตำแหน่งใดๆก็ได้ (ส่วนมากใช้ตำแหน่ง 0)
int arr[] = { 1, 3, 4, 6, 7 };
print("%d", sizeof(arr));
int size = sizeof(arr) / sizeof(arr[0]);
print(size);
Array Loops
- loop สามารถนำมาประยุกต์ใช้กับ array ได้
- โดยการวนลูปจะเริ่มที่
index = 0
จนถึงindex = ขนาดของ array - 1
- สามารถดึงค่าของแต่ละตำแหน่งด้วยการระบุ index ที่ได้จากการวนลูปแต่ละรอบ เช่น
arr[i]
#include <stdio.h>
int main() {
int num[5] = {1, 2, 3, 4, 5};
int size = sizeof(num) / sizeof(num[0]);
printf("%d\n", size);
// output
for(int i = 0; i < SIZE; i++){
printf("%d,", num[i]);
}
printf("\n");
}
Multidimensional Array
- หลักการเดียวกับ Array 1 มิติ
- มิติที่ 2 หรือมากกว่า จะเก็บข้อมูลเป็น Array เหมือนกัน
- ถ้าภาษา c ต้องเข้าถึงข้อมูลที่เป็นค่า ไม่สามารถจะแสดงผล array ได้ ดังนั้นเราต้องวนลูปซ้อนข้างในอีกรอบเพื่อให้แสดงค่าของมิติที่ 1 และ 2 ได้

#include <stdio.h>
int main() {
const int COLUMN = 3;
const int ROW = 3;
int table[COLUMN][ROW] = {
{1, 2, 3},
{2, 3, 4},
{3, 4, 5}
};
for (int i = 0; i < COLUMN; i++) {
for (int j = 0; j < ROW; j++) {
printf("%d", table[i][j]);
}
}
}
Exercise
- หาผลบวก, ค่ามากที่สุด, ค่าน้อยที่สุด ของตัวเลขใน array ต่อไปนี้
{ 4, 5, 12, 6, 7, 8 }
{ 3, 6 }
{ 0 }
- สร้างโปรแกรมรับ input ตัวเลข 5 ตัวจากนั้น
- แสดงผลตัวเลขตามลำดับที่ใส่เข้าไป
- แสดงผล reverse ของตัวเลขที่ใส่เข้าไป
- Symmetric Array 2d: รับค่า input ขนาดของ metrix เช่น 3 x 3, 4 x 4 จากนั้นรับค่าตัวเลขไปใส่ให้ครบจำนวนใน metrix เช่น 3 x 3 รับค่า 9 ตัวเลข 4 x 4 รับค่า 16 ตัวเลข จากนั้นให้คำนวณหาว่า Matrix นี้ Symmetric หรือไม่
💡
Symmetric Metrix คือ Metrix ที่ transpose แล้วมีค่าเท่าเดิม

Reference
Multidimensional Arrays in C - GeeksforGeeks
A Computer Science portal for geeks. It contains well written, well thought and well explained computer science and programming articles, quizzes and practice/competitive programming/company interview Questions.

Symmetric & Skew Symmetric matrices - Definition with Examples
In a symmetric matrix,A’ = AAnd in a skew symmetric matrixA’ = −ANote:Here matrix should be a square matrixLet’s take some examplesForSince A = A’∴ A is a symmetric matrixForTherefore,B’ = −BSo, B is a skew symmetric matrixNote:In a skewsymmetricmatrix, diagonal elements arealways 0.
