MST

星途 面试题库

面试题:C++中数组作为函数参数时的基础类型转换问题

在C++ 中,当数组作为函数参数传递时,会发生什么类型转换?请举例说明如何定义一个函数接收数组参数,并在函数中正确处理数组的元素。假设数组元素类型为int。
46.0万 热度难度
编程语言C++

知识考点

AI 面试

面试题答案

一键面试
  1. 数组作为函数参数传递时的类型转换
    • 在C++ 中,当数组作为函数参数传递时,数组会自动退化为指向其首元素的指针。例如,int arr[10]在传递给函数时,会被转换为int*类型。
  2. 定义接收数组参数的函数并处理元素示例
#include <iostream>

// 定义函数,参数为指向int类型的指针和数组元素个数
void processArray(int* arr, int size) {
    for (int i = 0; i < size; ++i) {
        std::cout << "Element at index " << i << " is: " << arr[i] << std::endl;
    }
}

int main() {
    int myArray[] = {1, 2, 3, 4, 5};
    int size = sizeof(myArray) / sizeof(myArray[0]);

    processArray(myArray, size);

    return 0;
}

在上述代码中,processArray函数接收一个int*类型的指针(实际上是退化后的数组)和数组元素个数size。通过这个指针和元素个数,函数可以正确遍历并处理数组中的元素。在main函数中,定义了一个int类型数组myArray,计算其元素个数后传递给processArray函数进行处理。