Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> การเขียนโปรแกรม C

ฉันจะหาความยาวของอาร์เรย์ใน C/C++ ได้อย่างไร


วิธีการบางอย่างในการค้นหาความยาวของอาร์เรย์มีดังนี้ -

วิธีที่ 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;