在C ++中,将数组传递给函数的唯一方法是通过指针,请考虑以下内容
功能:

void someFunc(sample input[7]){
 //whatever
}
void someFunc(sample input[]){
 //whatever
}
void someFunc(sample (& input)[7]){
 //whatever
}


未内联函数时,以上所有函数参数均与以下函数参数相同:

void someFunc(sample * input){
 //whatever
}


现在要传递带有值的数组,我们必须将其放入如下结构:

struct SampleArray{
 public:
  sample sampleArray[7];
};


现在,我想知道是否有人知道C ++标准中这种设计背后的原因,即这种设计使得通过任何语法都无法通过值传递纯数组,并强制使用结构。

最佳答案

向后兼容的原因。 C ++只能从C继承此行为。

关于c++ - 在C++标准中通过指针传递数组的严格规则背后的原因,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4218363/

10-17 01:29