0
void HowToPutParameters( XXXXXX)  // how to put parameters in XXXXXX
{
    array[0][0]=5; 
}    
void main()
{    
    int array[2][2]={{1,2},{3,4}};  
    HowToPutParameters(&array[0][0]);  // &array[0][0] is correct or &array[0]
}

// 我想把这个数组放到 HowToPutParameters;

// 1.我不确定“&array[0][0] or &array[0]”是否正确,编译器似乎识别;

// 我试过 void HowToPutParameters(int *array ) ==> 编译失败

// 我试过 void HowToPutParameters(int *array[][] ) ==> 编译失败

// 我的编译器是 MPLAB X IDE V1.8 ,芯片是 Microchip>PIC32MX795F512

4

2 回答 2

1

如果要使用传递二维数组参数,请使用:

 void func(int (*a)[2]);// tell the function the first dimension size!
 func(array);

它与以下内容相同:

 void func(int a[][2]);
 func(array);

如果你通过&array[0][0],这意味着你传递一个指向 int 的指针。

void func(int *element);
于 2013-08-15T03:09:57.423 回答
1

像这样,在您的代码中,您只传递一个指向int数组元素的指针,而不是数组本身。

void HowToPutParameters(int* element)

而且您应该始终使用int main而不是void main.

于 2013-08-15T02:14:46.280 回答