2016-01-16 3 views
-2

Здесь заголовок функции:C синтаксис понимания - передача параметров функционирования

int* matrixmult(const int*ap[], const int* bp[], int* cp[]) 

и рабочий вызов функции:

matrixmult(ap, bp, cp); 

Почему работа не этот вызов ?:

matrixmult(ap[0], bp[0], cp[0]); 
+3

Поскольку функция требует передачи массива, а не элемента из этого массива. Возможно, снова прочитайте книгу. –

ответ

1

Почему этот вызов работы ?:

matrixmult(ap[0], bp[0], cp[0]);

Здесь значения (первый пункт из массива - int) передаются функции, в то время как указатели, как ожидается:

int* matrixmult(const int*ap[], const int* bp[], int* cp[]) 

Эта:

matrixmult(ap, bp, cp); 

работы потому что все три являются указателями. ap - это то же самое, что и &ap[0].

+0

будет & ap [0] работать? –

+1

@classMate - Да, я просто добавил это к ответу. –

Смежные вопросы