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

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

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

void f(int x)
{
    std :: cout << x;
}
 
int main()
{
    void (*pf1)(int) = f;
    void (*pf2)(int) = &f;
    (*pf1)(1);
    (*pf2)(2);
    return 0;
}
Почему

f

и

&f

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

&f

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

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

textual
Листинг программы
#include <stdio.h>
 
int main(void) 
{
 
int a[3]={1,2,3};
 
int * p;
 
p = a;
printf("%d\n",*p);
 
p = &a;
printf("%d\n",*p);
 
return 0;
}

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

  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
Похожие ответы