¿De dónde viene la palabra "desreferenciar"?
Esta pregunta extraerá información del borradorN1570, entonces C11 básicamente.
Coloquialmente, desreferenciar un puntero significa aplicar el unario*
operador a un puntero. Solo hay un lugar donde la palabra "desreferenciar" existe en el borrador del documento (ninguna instancia de "desreferenciación"), y está en una nota al pie:
102) [...]
Entre los valores no válidos para desreferenciar un puntero por el unario*
El operador es un puntero nulo, una dirección incorrectamente alineada para el tipo de objeto al que apunta y la dirección de un objeto después del final de su vida útil.
Por lo que puedo ver, el unario*
El operador se llama en realidad el "operador de indirección", como lo demuestra el §6.5.3.2:
4
El unario*
El operador denota indirección. [...]
De manera similar, se llama explícitamente operador de indirección en el Anexo §J.2:
- Se accede al valor de un objeto mediante un subíndice de matriz[]
, Acceso de miembros.
o−>
, habla a&
o indirección*
operador o un puntero emitido en la creación de una dirección constante (6.6).
Entonces, ¿es correcto hablar de "desreferenciar punteros" en C o esto es excesivamente pedante? ¿De dónde viene la terminología? (Puedo dar un pase[]
ser llamado "defensa" debido a §6.5.2.1)