将数组传递给函数和在 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/