Может ли указатель принимать аргументы?
Нет, указатель - это просто переменная, в которой хранится адрес ячейки памяти.
int * abc (int, int);
Это объявление функции abc
, которое принимает два аргумента типа int
и возвращает указатель на тип int
.
int (* abc) (int, int);
Здесь abc
- указатель, который может указывать на функцию, которая принимает два аргумента типа int
и возвращаетint
.
Скажем, если у вас есть функция fun
:
int fun(int a, int b) {
return a + b;
}
abc
может указывать на fun()
, например:
abc = fun;
затемВы можете вызвать функцию fun
, используя указатель abc
, например:
abc(4, 5);
, чем эти указатели отличаются от обычного указателя.например:
int * ptr;
Здесь ptr
- указатель, который может хранить адрес типа int
.
Следовательно, все хранилища указателейв некоторой области памяти, разница заключается в адресе типа, на который они указывают.