Pasar una cadena a una función
Pasamos la dirección de la matriz de caracteres (cadena) a la función, también debido a esto, cualquier cambio que realicemos en esta cadena en nuestra función se refleja de nuevo.
Otra cosa interesante es que el nombre de la cadena es un puntero constante al primer elemento de esa matriz, por lo que en realidad también podemos escribir Example (& str [0])
#include
usando el espacio de nombres estándar;
- ¿Qué hace que aplicaciones como Snapchat, Instagram, Pinterest, Uber y más funcionen?
- ¿Cuál es la mentalidad que todo desarrollador debe tener al desarrollar nuevas funciones y mantener las antiguas?
- ¿Cuáles son las especificaciones que debe buscar un programador al comprar una nueva computadora portátil?
- ¿Dónde puedo encontrar una breve introducción a Python para alguien que tenga experiencia con C / C ++?
- ¿Crees que es mejor desarrollar una aplicación web o una aplicación nativa de iOS y Android para la primera versión de un producto?
Ejemplo vacío (char * s) {
s [0] = ‘p’;
char x = s [4];
// hacer cualquier cosa como una matriz de caracteres normal
}
int main () {
char str [] = “Pasando una cadena”;
Ejemplo (str);
cout << str << endl;
devuelve 0;
}
Devolviendo una cuerda
Ahora, esto es complicado, debe estar familiarizado con el hecho de que la memoria para un miembro de datos se libera una vez que la función queda fuera de alcance. Principalmente evitamos este hecho porque retornamos por valor para ex
int función () {
int x = 10;
volver x;
}
Esto funciona siempre porque el valor en la memoria bloqueada se copia a la variable que acepta esto y luego se elimina el bloque de memoria de x.
A diferencia de esto, tenemos que devolver un puntero a la matriz en caso de cadenas, matrices, etc. Así que esto significa la dirección del primer elemento de la matriz de caracteres definida en la función desde la que devolvemos esta cadena, por lo tanto, la memoria debe conservarse .
Para preservar la memoria, utilizamos una palabra clave “estática” que crea una sola memoria independientemente del límite de la función.
#include
usando el espacio de nombres estándar;
char * Ejemplo () {
static char * str = “¡Hola, mundo!”;
volver str;
}
int main () {
char * s = Ejemplo ();
cout << s << endl;
devuelve 0;
}