¿Por qué es "\?" Una secuencia de escape en C / C ++?
Hay cuatro caracteres especiales que no son del alfabeto y que deben escaparse en C / C ++: la comilla simple\'
, la doble cita\"
, la barra invertida\\
y el signo de interrogación\?
. Aparentemente es porque tienen significados especiales.'
para solterochar
, "
para literales de cuerda,\
para secuencias de escape, pero ¿por qué es?
¿uno de ellos?
Leí la tabla de secuencias de escape en un libro de texto hoy y me di cuenta de que heNunca escapar?
antes y nunca encontré un problema con él, solo para estar seguro, lo probé en gcc:
#include <stdio.h>
int main(void)
{
printf("question mark ? and escaped \?\n");
return 0;
}
y la versión C ++:
#include <iostream>
int main(void)
{
std::cout << "question mark ? and escaped \?" << std::endl;
return 0;
}
Ambos programas de salida:question mark ? and escaped ?
Así que tengo dos preguntas:
Por que es\?
¿Uno de los personajes de la secuencia de escape?¿Por qué no escapar??
Funciona bien, ni siquiera hay una advertencia.Antes de que esté a punto de hacer esta pregunta, encontré la respuesta, ya que no encontré un duplicado en SO, decidí publicarlo en un estilo de preguntas y respuestas.
Lo más interesante es que los escapados.\?
se puede utilizar igual que?
También en otros idiomas, lo probé en Lua / Ruby, también es cierto, aunque no lo encontré documentado.