วิธีการบางอย่างในการค้นหาความยาวของอาร์เรย์มีดังนี้ -
วิธีที่ 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;