Разница в инициализации указателя на функцию - 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;
}
Объяснение кода листинга программы
- Подключение стандартной библиотеки файла
- Объявление функции main()
- Инициализация массива a[3] значениями {1,2,3}
- Объявление указателя p на int
- Инициализация указателя p значением a
- Вывод значения *p на экран
- Инициализация указателя p значением &a (адрес массива a)
- Вывод значения *p на экран
- Завершение функции main()