1/210
Looks like no tags are added yet.
Name | Mastery | Learn | Test | Matching | Spaced | Call with Kai |
|---|
No study sessions yet.
Array / Matriz
Una colección ordenada de cajitas (espacios) que guardan datos del mismo tipo; todas las cajitas tienen posiciones fijas y pertenecen a la misma caja grande. Es como una fila de manzanas dentro de una canasta donde todas son del mismo tipo.
Elemento
El contenido dentro de cada cajita del array; cada valor almacenado es un elemento.
Colección Homogénea
Propiedad del array donde todos los elementos deben ser del mismo tipo: solo números, o solo caracteres, etc., evitando mezclar tipos incompatibles.
Nombre / Identificador
La etiqueta que identifica al array completo; permite pedir o modificar elementos usando su nombre.
Índice
El número que indica la posición de una cajita dentro del array; en muchos lenguajes inicia desde 0.
Indexación desde 0
Sistema donde el primer elemento se encuentra en la posición 0 por razones de organización de memoria; primer elemento = índice 0.
Array Unidimensional
Un solo arreglo en forma de fila; también llamado vector o lista.
Array Bidimensional
Una tabla de filas y columnas; también llamada matriz, donde se accede con dos índices.
Array Multidimensional
Arreglos con más de dos dimensiones; son como cajas dentro de cajas, usados para datos complejos.
Acceder a un elemento
Operación para obtener el valor de una cajita usando su índice, como juguetes[0] para obtener "pelota".
Modificar un elemento
Cambiar el contenido de una cajita específica dentro del array asignando un nuevo valor.
Longitud del array
Cantidad total de elementos o cajitas en el array; en C normalmente debe calcularse manualmente.
Recorrer un array
Revisar elemento por elemento usando ciclos; útil para imprimir, comparar o copiar.
No copiar con "="
En C no se puede copiar un array completo usando "="; solo se copiaría la dirección, no el contenido.
No comparar con "=="
Comparar arrays con "==" solo compara direcciones de memoria, no los valores internos.
No imprimir con un solo print
No se puede imprimir un array completo con printf("%d", A); se debe imprimir elemento por elemento.
Copiar elemento por elemento
Forma correcta de copiar un array: recorrer todas sus posiciones y copiar cada cajita individualmente.
Comparar elemento por elemento
Manera correcta de revisar si dos arrays son iguales.
Imprimir elemento por elemento
Forma correcta de mostrar un array: imprimir cada cajita en un ciclo.
Cajitas separadas
Idea infantil que ayuda a entender que los arrays no están "pegados"; no se pueden manipular como un solo bloque.
Copiar paso por paso
Explicación infantil donde la copia se hace revisando cada cajita individualmente.
Comparar paso por paso
Comparación infantil que revisa cajita por cajita para ver si tienen lo mismo.
Imprimir paso por paso
Imprimir una cajita a la vez como si se observan juguetes uno por uno.
Ejemplo lista simple
juguetes = [pelota, muñeca, coche]; juguetes[0] devuelve "pelota".
Ejemplo tabla simple
int notas[2][2] = { {8, 9}, {7, 10} }; notas[0][1] devuelve 9.
Memoria contigua
Característica de los arrays donde las cajitas están almacenadas una junto a otra en memoria.
Tamaño fijo
En C los arrays deben declararse con un tamaño que no se puede cambiar después.
Dirección base
La dirección de memoria donde empieza el array; corresponde al índice 0.
Acceso aleatorio
Ventaja del array que permite acceder a cualquier elemento inmediatamente usando su índice.
Iteración
Proceso de recorrer un array desde el inicio hasta el final para hacer operaciones como imprimir o comparar.
Cadena de caracteres (string)
Una secuencia ordenada de letras números espacios o símbolos encerrados entre comillas dobles que representan texto como "Hola" o "123".
String como collar de cuentas
Analogía donde cada carácter es una cuentita dentro de un collar lo que ayuda a visualizar que una cadena es una serie ordenada de elementos.
Comillas dobles en cadenas
Las cadenas deben ir entre " " para que la computadora entienda que es texto y no código.
Contenido permitido en cadenas
Pueden incluir letras números símbolos y espacios sin restricciones generales.
Carácter especial
Un símbolo que no puede escribirse directamente en la cadena y requiere una secuencia de escape para funcionar correctamente.
Secuencias de escape
Combinaciones que empiezan con barra invertida \ y representan acciones especiales como saltos de línea o comillas internas.
Secuencia \n
Indica un salto de línea produciendo que el texto continúe desde un renglón abajo.
Secuencia "
Permite insertar comillas dentro de un string sin cerrar accidentalmente la cadena.
Barra invertida en cadenas
Caracter especial \ que inicia códigos de escape y permite representar caracteres que de otro modo confundirían al compilador.
Ejemplo salto de línea
"Hola\nMundo" imprime Hola en una línea y Mundo en la siguiente.
Ejemplo comillas internas
"Ella dijo: "Hola"" imprime comillas reales dentro del texto.
Cadena como collar de texto
Comparación donde cada letra número o espacio es una cuentita formando un mensaje completo.
Función de las comillas
Le dicen a la computadora que todo lo encerrado es texto literal y no instrucciones.
Necesidad de secuencias de escape
Permiten comunicar acciones especiales como bajar de renglón o incluir comillas sin romper la cadena.
Ejemplo bajando de renglón
"Hola\nMundo" demuestra que \n funciona como "baja aquí".
Cadena en C como array
Una cadena se almacena como un array de caracteres donde cada posición guarda un carácter.
Terminador nulo '\0'
Carácter especial que marca el final de la cadena para que las funciones sepan dónde detenerse.
Importancia del terminador nulo
Sin '\0' la computadora sigue leyendo basura en memoria causando errores o comportamientos indefinidos.
Representación interna de "hola"
Se guarda como 'h' 'o' 'l' 'a' '\0' con índices 0 a 4.
Declaración de cadena con array
char nombre[10]; crea espacio para 9 caracteres útiles más el terminador nulo.
Inicialización directa
char saludo[] = "hola"; permite que el compilador calcule automáticamente el tamaño correcto.
Puntero a literal
char *p = "hola"; crea un puntero que apunta a un texto en memoria de solo lectura.
Restricción de modificar literales
Las cadenas creadas con punteros no deben modificarse pues pueden causar fallos del programa.
Función strlen
Devuelve la cantidad de caracteres antes del terminador nulo contando solo letras y símbolos visibles.
strlen ignorando '\0'
Cuenta únicamente los caracteres visibles asegurando precisión en la longitud real del texto.
Prohibición de asignación directa en arrays
No se puede usar nombre = "hola" después de declarar char nombre[10] porque los arrays no aceptan reasignación con '='.
Inicialización correcta en declaración
char nombre[] = "Ana"; asignación válida porque ocurre al momento de crear el array.
Copiar cadena con strcpy
strcpy(nombre,"Ana"); copia cada carácter incluyendo '\0' del origen al destino.
Peligro de strcpy
No verifica tamaño del destino pudiendo provocar desbordamiento de memoria.
Lectura con fgets
Permite leer texto con espacios de forma segura controlando tamaño y añadiendo '\0' automáticamente.
Lectura con scanf
"%s" lee solo una palabra hasta espacio y puede causar overflow si no se limita el tamaño.
Formato %s en printf
Imprime cadenas completas recorriendo caracteres hasta encontrar '\0'.
Uso recomendado de fgets
Es más seguro que scanf pues permite incluir espacios y evita sobrepasar el tamaño del buffer.
strcpy(destino, origen)
Copia el contenido del string origen dentro del destino incluyendo terminador nulo.
strncpy seguro
Copia hasta un máximo de caracteres permitiendo evitar desbordamientos y garantizando añadir '\0'.
Diferencia entre array y puntero
char s1[] crea memoria propia mientras que char *s2 apunta a una zona de solo lectura.
strcmp para comparar cadenas
Devuelve 0 si son iguales y un valor negativo o positivo según el orden lexicográfico.
strcat para concatenar
Pega una cadena al final de otra siempre que haya espacio suficiente.
scanf con límite
scanf("%19s",s); limita la entrada a 19 caracteres evitando overflow.
Fallas por olvido de '\0'
Produce lectura de memoria basura creando comportamientos peligrosos o crash.
Overflow en Cadenas
Error grave donde se escribe más allá del límite del array modificando memoria que no pertenece a la cadena.
Salto de línea \n
Produce un cambio de renglón durante impresión.
Comilla interna "
Permite mostrar comillas sin confundir al compilador.
Barra invertida \
Representa una barra invertida literal dentro del texto.
Tabulador \t
Inserta un espacio grande equivalente a una tabulación.
Declaración básica
char s1[] = "hola"; crea un array con 5 posiciones incluyendo '\0'.
Declaración con espacio extra
char s2[10] = "adios"; permite añadir texto adicional si se desea.
Impresión de cadena
printf("Mensaje: %s",s1); muestra texto completo.
Lectura segura con fgets
fgets(linea,sizeof(linea),stdin); obtiene líneas con espacios sin riesgos de overflow.
Lectura de palabra con scanf
scanf("%19s",palabra); lee hasta el primer espacio.
Concatenar cadenas
strcat(a,b); une los textos de dos strings.
Comparación lexicográfica
strcmp("a","b") < 0 indica que "a" va antes que "b".
Eliminar salto con strcspn
nombre[strcspn(nombre,"\n")] = '\0' elimina el salto de línea que deja fgets.
Ejemplo completo de longitud
Programa que lee un nombre con fgets elimina '\n' e imprime cuántas letras tiene usando strlen.
Carácter nulo '\0'
Es un caracter especial cuyo valor ASCII es 0 y marca el final de una cadena en C; no es una letra ni símbolo visible y la computadora lo usa para saber exactamente dónde termina la palabra guardada en un array de chars.
Terminación automática de cadenas
Cuando escribes texto entre comillas en C como "Hola", el compilador agrega automáticamente el carácter '\0' al final, evitando que tengas que escribirlo manualmente.
Cadena en C
Es un array de caracteres que siempre termina con '\0'; contiene letras consecutivas en memoria y se interpreta como un texto legible mientras incluya el carácter nulo.
Representación interna de una cadena
Una palabra escrita como "Madrid" se guarda internamente como 'M','a','d','r','i','d','\0', sumando una posición extra más allá de las letras visibles.
Longitud de una cadena en C
Es la cantidad de caracteres visibles antes de '\0'; si una cadena tiene "Hola", su longitud es 4 aunque el array ocupe 5 posiciones.
Cadena vacía
Es una cadena que contiene solo el carácter '\0'; su longitud es 0, pero ocupa al menos una casilla en memoria.
Diferencia entre cadena y arreglo de letras sin '\0'
Un arreglo como {'H','o','l','a'} no es una cadena válida porque no tiene '\0'; la computadora no sabrá dónde termina, a diferencia de "Hola" o {'H','o','l','a','\0'}.
Cadena declarada con tamaño grande
Es cuando reservas más espacios de los necesarios, como char texto[1024] = "Hola"; el texto solo usa unas pocas casillas y las demás quedan disponibles para futuras operaciones.
Cálculo manual de la longitud
Proceso donde se revisa la cadena letra por letra hasta encontrar '\0', incrementando un contador durante el recorrido.
Algoritmo de conteo con while
Es el patrón: while(cadena[i] != '\0') i++; que sigue avanzando por cada posición hasta localizar el carácter nulo y así obtener la longitud.
Lectura de cadenas con scanf("%s")
Permite guardar texto en un array de char sin usar & porque el nombre del array ya representa su dirección; guarda texto solo hasta el primer espacio.
Limitación de scanf con espacios
scanf("%s") detiene la lectura al encontrar un espacio, por lo que una entrada como "hola mundo" solo guarda "hola".
Impresión de cadenas con printf("%s")
Es la forma estándar de mostrar cadenas completas; %s indica que debe imprimir todos los caracteres hasta encontrar '\0'.
Riesgo de scanf sin límite de tamaño
Al usar scanf("%s") sin especificar un máximo, el usuario podría escribir más caracteres que el arreglo soporta, causando sobreescritura en memoria.
Uso básico de strcpy
Es la función de la biblioteca string.h que copia una cadena completa desde un origen hacia un destino, incluyendo el '\0'.
strcpy(destino, origen)
Instrucción que copia todos los caracteres de origen a destino de manera segura y ordenada; es la forma correcta de duplicar cadenas en C sin compartir direcciones.