Разница в инициализации указателя на функцию - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Листинг программы
  1. void f(int x)
  2. {
  3. std :: cout << x;
  4. }
  5. int main()
  6. {
  7. void (*pf1)(int) = f;
  8. void (*pf2)(int) = &f;
  9. (*pf1)(1);
  10. (*pf2)(2);
  11. return 0;
  12. }
Почему

f

и

&f

значат одно и то же. Разве

&f

не должен означать адрес расположения указателя на функцию?

Решение задачи: «Разница в инициализации указателя на функцию»

textual
Листинг программы
  1. #include <stdio.h>
  2.  
  3. int main(void)
  4. {
  5.  
  6. int a[3]={1,2,3};
  7.  
  8. int * p;
  9.  
  10. p = a;
  11. printf("%d\n",*p);
  12.  
  13. p = &a;
  14. printf("%d\n",*p);
  15.  
  16. return 0;
  17. }

Объяснение кода листинга программы

  1. Подключение стандартной библиотеки файла
  2. Объявление функции main()
  3. Инициализация массива a[3] значениями {1,2,3}
  4. Объявление указателя p на int
  5. Инициализация указателя p значением a
  6. Вывод значения *p на экран
  7. Инициализация указателя p значением &a (адрес массива a)
  8. Вывод значения *p на экран
  9. Завершение функции main()

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

8   голосов , оценка 4.375 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы