¿Qué representa un píxel en una pantalla de computadora?
Es un punto individual de color que, junto con otros, forma una imagen.
¿Cuál es la función del sistema RGB en la representación de colores?
Representar colores mediante la combinación de intensidades de rojo (Red), verde (Green) y azul (Blue).
En el sistema hexadecimal, ¿qué base numérica se utiliza?
Se utiliza la base 16.
¿Cuáles son los 16 dígitos disponibles en el sistema hexadecimal?
Los números del 0 al 9 y las letras de la A a la F.
¿Qué valor decimal representa la letra $F$ en hexadecimal?
Representa el valor decimal 15.
¿Cuántos bits se pueden representar exactamente con un solo dígito hexadecimal?
Se pueden representar 4 bits.
¿Por qué es conveniente usar dos dígitos hexadecimales para representar un byte?
Porque cada dígito representa 4 bits, sumando los 8 bits que conforman un byte.
¿Qué valor decimal equivale al número hexadecimal $0xFF$?
Equivale al valor decimal 255.
¿Cuál es el prefijo estándar utilizado en C para denotar un número en base hexadecimal?
El prefijo $0x$.
Definición: Puntero (Pointer)
Es una variable que almacena la dirección de memoria de otro valor.
¿Qué operación realiza el operador ampersand ($\&$) al anteponerse a una variable?
Obtiene la dirección de memoria de esa variable.
¿Cuál es la función del operador asterisco ($*$) cuando se usa en la declaración de una variable (ej. $int *p$)?
Indica que la variable almacenará la dirección de memoria de un tipo de dato específico.
¿Qué hace el operador de desreferencia ($*$) cuando se aplica a un puntero existente?
Indica a la computadora que vaya a la dirección almacenada en el puntero para acceder a su valor.
¿Cuántos bytes ocupa generalmente un puntero en un sistema moderno de 64 bits?
Ocupa 8 bytes.
En C, ¿qué es técnicamente un string?
Es un puntero al primer carácter de una secuencia de caracteres en memoria ($char *$).
¿Cuál es el propósito del carácter nulo ($\0$) al final de un string en C?
Indicar el final de la secuencia de caracteres en la memoria.
¿Por qué se utiliza el formato $\%p$ en la función $printf$?
Para imprimir una dirección de memoria en formato hexadecimal.
¿Qué sucede realmente al declarar $string s = “HI!”$ usando la biblioteca CS50?
Se crea un puntero de tipo $char *$ que apunta a la dirección de la letra ‘H’.
¿Qué permite hacer la palabra clave $typedef$ en C?
Permite crear alias o sinónimos para tipos de datos existentes.
Concepto: Aritmética de punteros
Es la capacidad de sumar o restar valores a una dirección de memoria para navegar por datos contiguos.
Si $s$ es un puntero a un string, ¿a qué carácter apunta la expresión $*(s + 1)$?
Apunta al segundo carácter del string.
En C, la notación de corchetes $s[i]$ es “azúcar sintáctica” para la expresión de punteros _____.
*(s + i)
¿Por qué el operador $==$ no compara correctamente el contenido de dos strings en C?
Porque compara las direcciones de memoria de los punteros en lugar de los caracteres individuales.
¿Qué función de la biblioteca $string.h$ se debe usar para comparar el contenido de dos strings?
$strcmp$