函数重载

use*_*712 4 c++

我找到了这个代码,我不确定是否应该发生重载.

void print( int (*arr)[6], int size );

void print( int (*arr)[5], int size );
Run Code Online (Sandbox Code Playgroud)

如果我将指针传递给4个元素的数组会发生什么,它应该来...

任何线程都会有所帮助.

ken*_*ytm 10

将发生重载,并将指针传递给4的数组int将不匹配任何一个函数.如果你把它们写成等效的形式,它会更清楚:

void print( int arr[][6], int size );
void print( int arr[][5], int size );
Run Code Online (Sandbox Code Playgroud)

N×4阵列可以衰减为指向4的数组的指针int.众所周知,具有不同第二维度的2D阵列是不兼容的.


sbi*_*sbi 6

KennyTM的答案是正确的.不过,这是一个额外的想法,基于你的问题带有C++标签的事实.在C++中,您可以使用具有非类型参数的模板来查找数组维:

#include <iostream>

template< std::size_t N >
void print(int (&arr)[N]) {std::cout << N << '\n';}

int main()
{
    int arr[6];
    print(arr);
    return 0;
}
Run Code Online (Sandbox Code Playgroud)