วิธีการบางอย่างในการค้นหาความยาวของอาร์เรย์มีดังนี้ -
วิธีที่ 1 - การใช้ตัวดำเนินการ sizeof
สามารถใช้ตัวดำเนินการ sizeof() เพื่อค้นหาความยาวของอาร์เรย์ โปรแกรมที่แสดงการใช้ตัวดำเนินการ sizeof ใน C++ มีดังต่อไปนี้
ตัวอย่าง
#include <iostream> using namespace std; int main() { int arr[5] = {4, 1, 8, 2, 9}; int len = sizeof(arr)/sizeof(arr[0]); cout << "The length of the array is: " << len; return 0; }
ผลลัพธ์ของโปรแกรมข้างต้นเป็นดังนี้ −
The length of the array is: 5
ตอนนี้ เรามาทำความเข้าใจโปรแกรมข้างต้นกัน
เลนตัวแปรเก็บความยาวของอาร์เรย์ ความยาวคำนวณโดยการหาขนาดของอาร์เรย์โดยใช้ sizeof แล้วหารด้วยขนาดขององค์ประกอบหนึ่งของอาร์เรย์ จากนั้นค่าของ len จะปรากฏขึ้น ข้อมูลโค้ดสำหรับสิ่งนี้จะได้รับดังนี้ −
int arr[5] = {4, 1, 8, 2, 9}; int len = sizeof(arr)/sizeof(arr[0]); cout << "The length of the array is: " << len;
วิธีที่ 2 - การใช้พอยน์เตอร์
เลขคณิตตัวชี้สามารถใช้เพื่อค้นหาความยาวของอาร์เรย์ โดยมีโปรแกรมสาธิตดังนี้
ตัวอย่าง
#include <iostream> using namespace std; int main() { int arr[5] = {5, 8, 1, 3, 6}; int len = *(&arr + 1) - arr; cout << "The length of the array is: " << len; return 0; }
ผลลัพธ์
ผลลัพธ์ของโปรแกรมข้างต้นเป็นดังนี้ −
The length of the array is: 5
ตอนนี้ เรามาทำความเข้าใจโปรแกรมข้างต้นกัน
ค่าที่อยู่ใน *(&arr + 1) คือที่อยู่หลัง 5 องค์ประกอบในอาร์เรย์ ค่าที่อยู่ใน arr คือที่อยู่ขององค์ประกอบเริ่มต้นในอาร์เรย์ ดังนั้นการลบจะส่งผลให้ความยาวของอาร์เรย์ ข้อมูลโค้ดสำหรับสิ่งนี้จะได้รับดังนี้ −
int arr[5] = {5, 8, 1, 3, 6}; int len = *(&arr + 1) - arr; cout << "The length of the array is: " << len;