c++ - 将数组传递给函数和在 main 中声明数组有什么区别?

标签 c++ arrays function

将数组传递给函数和在 main 中声明数组有什么区别?每种结构都有哪些优点?例如,在第一个代码示例中,我将数组传递给函数,在第二个代码示例中,我在 main 中声明它。有什么区别?

版本 1:

#include <iostream>
using namespace std;

void printArray(int theArray[], int sizeofArray);

//passive arrays to function..

int main() {
   int arr[3] = {44,23,22};
   int arry[5] = {56,23,11,23,55};
   printArray(arr, 3);
}

void printArray(int theArray[], int sizeofArray){
    for(int x =0;x<sizeofArray; x++){
        cout << theArray[x] << endl;
    }
}

版本 2:

#include <iostream>
#include <string.h>
using namespace std;

int main() {
    int arr[3] = {44,23,22};
    int arry[5] = {56,23,11,23,55};

    for(int x=0;x<3;x++){
        cout << arr[x] << endl;
    }
}

最佳答案

正如 Juanchopanza 所指出的,在这两种情况下,您的数组都是在 main 函数内声明的。

主要区别在于您的代码组织。函数的目的是允许您根据不同的参数执行任务。在第二个示例中,您仍然可以执行 printArray(arry, 5) 来打印第二个数组的内容,如下所示:

#include <iostream>
using namespace std;

void printArray(int theArray[], int sizeofArray);

//passive arrays to function..

int main() {
   int arr[3] = {44,23,22};
   int arry[5] = {56,23,11,23,55};
   printArray(arr, 3);
   printArray(arry, 5); // Let's see what's inside arry too !
}

void printArray(int theArray[], int sizeofArray){
    for(int x =0;x<sizeofArray; x++){
        cout << theArray[x] << endl;
    }
}

如果您想在第一个示例中执行此操作,则必须复制/粘贴循环,这将导致代码可读性较差,看起来有多难看:

#include <iostream>
#include <string.h>
using namespace std;

int main() {
    int arr[3] = {44,23,22};
    int arry[5] = {56,23,11,23,55};

    for(int x=0;x<3;x++){
        cout << arr[x] << endl;
    }
    for(int x=0;x<5;x++) {           // Here
        cout << arry[x] << endl;
    }
}

如果您必须打印十个不同的数组,会发生什么?您愿意使用不同的参数调用函数 printArray 十次还是复制/粘贴循环十次?

关于c++ - 将数组传递给函数和在 main 中声明数组有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31725324/

相关文章:

r - 自定义函数后,在 R 控制台中调用对象会产生所需的结果,而 "View"来自环境的对象不会

将函数作为参数传递给函数的 C 方法

c++ - 我应该在哪里使用 automake/autoconf 项目解决符号查找/ undefined symbol ?

c++ - 没有类的对象 - 'clean C' 中的数据模型

c++ - 递归传递字符串而不需要重新创建

php - 使用 PHP 检索多行数据

javascript - 如何从一串单词中提取出一条字符串?

c++ - 继承和默认构造函数的一些问题

php - 将数组插入数组 - 关键问题

Javascript 函数/未定义错误 - 小费计算