Un puntero es una variable cuyo valor es la dirección de otra variable, es decir, la dirección directa de la ubicación de memoria. Como cualquier variable o constante , se debe declarar un puntero antes de almacenar cualquier dirección de variable. La forma general de una declaración de variable de puntero es:
Sintaxis:
type *var_name;
Aquí, type es el tipo base de los punteros. Debe ser un tipo de datos C / C++ válido y var-name es el nombre de la variable de puntero. El asterisco * se utiliza para designar una variable como puntero. A continuación se muestra la declaración de puntero válida para su respectivo tipo de datos:
int *ip; float *fp; double *dp; char *cp;
En este artículo, el enfoque es diferenciar int* p() e int (*p)() .
int* p() : Aquí “p” es una función que no tiene argumentos y devuelve un puntero entero.
int* p() returntype function_name (arguments)
A continuación se muestra el programa para ilustrar el uso de int* p() :
C++
// C++ program to demonstrate the use // of int* p() #include <bits/stdc++.h> using namespace std; // Function that returns integer pointer // and no arguments int* p() { int a = 6, b = 3; int c = a + b; int* t = &c; return t; } // Driver Code int main() { // Declare pointer a int* a = p(); cout << *a; }
9
int (*p)(): Aquí “p” es un puntero de función que puede almacenar la dirección de una función sin argumentos y devolviendo un número entero. *p es la función y ‘ p ‘ es un puntero.
A continuación se muestra el programa para ilustrar el uso de int (*p)() :
C++
// C++ program to demonstrate the use // of int* (*p)() #include <bits/stdc++.h> using namespace std; // Function with no arguments // and return integer int gfg() { int a = 5, b = 9; return a + b; } // Driver Code int main() { // Declaring Function Pointer int (*p)(); // Storing the address of // function gfg in function // pointer p = gfg; // Invoking function using // function pointer cout << p() << endl; }
14
Publicación traducida automáticamente
Artículo escrito por ArifShaikh y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA