Avatar ·

C++ में array-to-pointer decay क्या है?

नमस्ते साथियों! मैंने अभी C++ सीखना शुरू किया है और arrays के बहुत अजीब व्यवहार का सामना किया है। जब मैं किसी function में array पास करता हूँ और `sizeof` के साथ इसका आकार जानने की कोशिश करता हूँ, तो मुझे वह नहीं मिलता जिसकी मुझे उम्मीद है। यहाँ एक उदाहरण है: ```cpp #include void printSize(int arr[]) { std::cout << "Function के अंदर: " << sizeof(arr) << " बाइट" << std::endl; } int main() { int numbers[5] = {1, 2, 3, 4, 5}; std::cout << "main में: " << sizeof(numbers) << " बाइट" << std::endl; // 20 (5 * 4) प्रिंट करता है printSize(numbers); // 64-bit सिस्टम पर 8 (pointer का आकार) प्रिंट करता है return 0; } ``` मैं उम्मीद कर रहा था कि function के अंदर `sizeof(arr)` भी 20 लौटाएगा, लेकिन मुझे 8 मिलता है। ऐसा क्यों होता है? मैंने "array decay" शब्द सुना है, लेकिन मुझे पूरी तरह से समझ नहीं आया कि इसका क्या मतलब है।