Así que en la definición, el nombre de la función es precedida por el operador para deshacer referencias, *. El tipo de valor que la función devolverá precede al *, que precede al nombre de la función. La primera declaración en el bloque de la definición de función theFn inicializa un identificador que se utiliza como objeto puntiagudo. La segunda declaración inicializa un objeto de puntero para el identificador de arriba. La última instrucción devuelve el puntero (dirección).
La primera declaración en la función principal es: int * Receptor = theFn (); Esta declaración inicializa el puntero, receptor. El operando de la derecha es una llamada a la función que devuelve un puntero (dirección de memoria). Es normal para inicializar un puntero utilizando la dirección de memoria de un objeto puntiagudo. Así que en esta norma de inicialización, un puntero (dirección de memoria) entra en el objeto identificado por, receptor.
Por lo que se refiere a todo el código, dos objetos puntero tienen ahora la dirección de memoria del objeto con punta: los objetos son puntero puntero en el bloque de función theFn y el receptor en el bloque de función principal. Ahora, dos punteros apuntan al mismo objeto. Con el fin de obtener el valor del objeto que están apuntando a, usted tiene que utilizar el operador eliminar la referencia en cualquiera de los punteros en sus bloques deferentes. El objeto cout utiliza el operador dereferece, * en el puntero, receptor.
Tenga en cuenta que cuando se llama a la función, no preceden al nombre de la función, theFn, como *. Pruebe el código de seguridad. Pasando puntero a una función un parámetro de una función puede ser un tipo de puntero. El siguiente código muestra su uso: #include using namespace std; int AFN (int * no) {cout int anInt = 77; no = & anInt; volver * no; } Int main () {int myInt = 88; int hisRet = AFN (y myInt); cout return 0; } Al iniciar el programa se ejecutan las declaraciones en la