Рубрики

Викторина С — 109 | Вопрос 3

Узнайте правильное утверждение для следующей программы.

#include "stdio.h"

  

typedef int (*funPtr)(int);

  

int inc(int a)

{

 printf("Inside inc() %d\n",a);

 return (a+1);

}

  

int main()

{

  

 funPtr incPtr1 = NULL, incPtr2 = NULL;

  

 incPtr1 = &inc; / * (1) * /

 incPtr2 = inc; / * (2) * /

  

 (*incPtr1)(5); / * (3) * /

 incPtr2(5); / * (4) * /

  

 return 0;

}

(A) Строка с комментарием (1) выдаст ошибку компиляции.
(B) Строка с комментарием (2) выдаст ошибку компиляции.
(C) Строки с (1) и (3) приведут к ошибке компиляции.
(D) Строки с (2) и (4) приведут к ошибке компиляции.
(E) Нет ошибки компиляции и программа будет работать без проблем.

Ответ: (E)
Объяснение: При назначении любой функции указателю на функцию & необязательно. Точно так же, при вызове функции через указатель функции, * необязательно.
Тест на этот вопрос

Рекомендуемые посты:

Викторина С — 109 | Вопрос 3

0.00 (0%) 0 votes