I want to know what is the meaning of the following statements.
int *abc(int,int);
int (*abc)(int,int);
and how these pointers are different from the ordinary pointer. ex:
int *ptr;
Thank you
I want to know what is the meaning of the following statements.
int *abc(int,int);
int (*abc)(int,int);
and how these pointers are different from the ordinary pointer. ex:
int *ptr;
Thank you
Can a pointer take arguments?
No, a pointer is just a variable which stores address of a memory location.
int *abc(int,int);
This is a declaration of function abc
which takes two arguments, both of type int
, and returns a pointer to an int
type.
int (*abc)(int,int);
Here, abc
is a pointer that can point to a function which takes two int
type arguments and returns an int
.
Say, if you have a function fun
:
int fun(int a, int b) {
return a + b;
}
abc
can point to fun()
, like this:
abc = fun;
then you can call function fun
using abc
pointer, like this:
abc(4, 5);
how these pointers are different from the ordinary pointer. ex:
int *ptr;
Here, ptr
is a pointer which can store the address of an int
type.
Hence, all the pointers store some memory location, the difference lies in the address of a type they point to.
assuming C/C++
this: int *abc(int,int);
is a prototype of function returning a pointer to int
and taking two arguments of type int
this: int (*abc)(int,int);
is a declaration of a pointer to function returning int
and taking two arguments of type int