2017-01-18 85 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