Lo siento, pero es que no nos presentaron formalmente, por lo que no se me quedó su nombre en la cabeza
Que yo sepa, el mayor uso de los punteros es el de referenciar a una zona de memoria que hemos reservado, y que vamos pasando de una función a la siguiente como parámetro, para no tener que duplicarla. O el paso por referencia, en lugar de por valor.
No sé a qué te refieres con "acceder a variables de otra función" en lenguajes que no sean Orientados a Objetos o de ejecución procedural. En C yo aprendí que los datos entre funciones o métodos siempre se pasan por parámetro (de nuevo, por valor o referencia) o devolviendo un valor, por lo que siempre tendremos o una variable de tipo x, o un puntero a una zona de memoria. A lo mejor son cosas mucho más avanzadas de las que yo vi, pero el acceso a una zona de memoria, sin tener una referencia, nunca ha sido, por lo que yo aprendí, buenas prácticas.
Por eso se crearon las clases, para ir pasando instancias de clases, o referencias estáticas, y que su "zona de memoria" sean sus atributos, y su acceso esté más controlado, ya sea mediante sus métodos o por sus funciones de acceso (get/set).
También están los punteros a funciones, pero eso ya quedó fuera de lo que aprendí, y aunque alguna vez me pareció útil, al final nunca lo usé. Creo que tiraba de directivas del precompilador, que jamás llegué a usar y temas de cadenas a funciones que nunca me gustaron, sobre todo, porque usar una string como un valor absoluto siempre me pareció una fuente de errores muy grandes (esto lo llegué a usar en Java, y una simple tilde o una mayúscula o un carácter en una codificación diferente y ya no sabía dónde tenía que ir).
Marcadores