así lo hice la siguiente prueba:literales de cadena que contienen ' 0' - por qué no son lo mismo?
char* a = "test";
char* b = "test";
char* c = "test\0";
Y ahora las preguntas:
1) ¿Es garantizado que a==b
? Sé que estoy comparando direcciones. Esto no pretende comparar las cadenas, sino si se almacenan literales idénticos en una sola ubicación de memoria
2) ¿Por qué no a==c
? ¿No debería el compilador ver que se están refiriendo a la misma cadena?
3) ¿Hay un \0
adicional al final de c
, a pesar de que ya contiene uno?
no quería que pedir 3 preguntas diferentes para este, ya que parecen relacionados de alguna manera, lo siento 'combate que.
Nota: La etiqueta es correcta, estoy interesado en C++. (Aunque por favor, especifique si el comportamiento es diferente de C)
Debe ser 'char const * a = ...'. –
ayb tienen el mismo valor, pero eso no significa necesariamente que sean la cadena _same_. –
@HunterMcMillen - en realidad eso es exactamente lo que significaría. –