2017-01-18 48 views
0

我尝试使用数组从主函数传入函数并转换为另一函数。以下是我想要做的简化版本。C++将数组传递给函数,然后将其传递给另一个函数

我不能把func2()放在主函数中,因为我所做的代码要求我在void func()中做一些事情,然后应用到void func2()

#include <iostream> 
using namespace std; 

void func(char arr[2]) 
{ 
    func2(arr); 
} 

void func2(char arr[2]) 
{ 
    cout << arr[0] << arr[1]; 
} 

int main() 
{ 
    char arr[2] = {1,2}; 
    func(arr); 
} 

编辑: 好像问题是功能,而不是什么问题,我本来以为是数组的顺序。

#include <iostream> 
using namespace std; 

void func2(char arr[2]) 
{ 
    cout << arr[0] << arr[1]; 
} 

void func(char arr[2]) 
{ 
    func2(arr); 
} 

int main() 
{ 
    char arr[2] = {1,2}; 
    func(arr); 
} 
+3

您的示例将失败,因为func2是在func之后声明的 – Dillanm

+0

我似乎无法将该数组传递给func2() – Nasx

+2

请参阅@Dillanm的评论。你必须在使用之前声明'func2'。 –

回答

0

尝试,围绕你的交换功能:

#include <iostream> 
using namespace std; 

void func2(char arr[2]) 
{ 
    cout << arr[0] << arr[1]; 
} 

void func(char arr[2]) 
{ 
    func2(arr); 
} 



int main() 
{ 
    char arr[2] = {1,2}; 
    func(arr); 
} 

的问题是,如果引用func2func不知道任何有关。

此外,请尝试使用指针,而不是将整个数组复制到函数中。它效率更高。

+1

这里没有数组的拷贝。 'func'和'func2'实际上都带有'char *'参数。 – aschepler