Ventajas de los punteros en lenguaje C como parámetros de función
Copiar parámetros de función, por ejemplo:
modificación nula (int a)
{
a;
}
void main()
{
int a = 5;
Modificar (a);
printf("d",a);
}
La respuesta a este programa sigue siendo 5. ¿Por qué?
Porque cuando se llama a modificar (A), se abrirá otro espacio de memoria cuando se ejecute la función de modificación y se copiará el valor de A en principal. Todas las operaciones en la función modificada son relativas a este espacio de memoria recién abierto y no hay cambios en el a original.
Ahora hablemos de consejos. Si usa punteros para pasar parámetros, la situación es completamente diferente. Los punteros, para decirlo sin rodeos, se refieren a la dirección de memoria de una variable. De manera similar, el ejemplo anterior:
modificación nula (int * a)
{
(* a);
}< / p>
void main()
{
int a = 5;
Modificar (ampa); "d",a);
}
La respuesta es, por supuesto, 6.
Debido a que se pasa la dirección de A, todas las operaciones en la función de modificación operan en el contenido de la dirección de A, es decir, en A. Por lo tanto, la función de modificación no necesita devolver este número y el valor de A en principal también cambiará. Debido a que todos operan el mismo espacio de memoria y no hay punteros en él, modificar opera otro espacio de memoria recién abierto, pero el valor inicial de este espacio de memoria es el mismo que a.
Ahora hablemos de pasar parámetros. De hecho, su pregunta "¿Por qué los parámetros de función son punteros multipropósito a cadenas?" No entiendo bien esa oración. Pasar parámetros por cadena en C parece ser solo una forma de puntero (a menos que se use una estructura).
Cuándo usar punteros y cuándo usar copias. Cuando el parámetro pasado es una estructura, y esta estructura es relativamente grande, es mejor usar un puntero en este momento, porque si se usa la copia, se desperdiciará el tiempo dedicado a la copia, y si esta función se llama con frecuencia, la la eficiencia se reducirá. Surgirán problemas.
Cuando desee operar las variables en la función de llamada principal en una subfunción, también puede usar un puntero como parámetro, de modo que la subfunción no necesite usar retorno. Si no está utilizando punteros, debe agregar un retorno x al final de la subfunción. Devuelve este número como valor de retorno.
Después de leer demasiados libros y escribir demasiados programas, al principio me sentiré confundido acerca de los consejos. Cuanto más escribas, más entenderás.