Estoy usando C++ para entender cómo funcionan exactamente los punteros. Tengo este código usando matrices, que estoy usando solo para entender cómo funciona el equivalente con los punteros.¿Por qué Cout imprime matrices de caracteres de forma diferente a otras matrices?
int main() {
int arr[10] = {1,2,3};
char arr2[10] = {'c','i','a','o','\0'};
cout << arr << endl;
cout << arr2 << endl;
}
Sin embargo cuando funciono esto, arr
emite la dirección del primer elemento de la matriz de enteros (como se esperaba) pero arr2
no salida de la dirección del primer elemento de la matriz de caracteres; en realidad imprime "ciao".
¿Qué es lo que me falta o que no he aprendido todavía sobre esto?
De acuerdo con [este] (http://www.cplusplus.com/reference/ostream/ostream/operator%3C%3C/) solo está sobrecargado para void *. ¿Significa eso que es capaz de determinar si el puntero apunta a los caracteres, y si es así, busca el carácter del terminal e imprime la cadena? (Todavía un poco perplejo) – rmp251
@ rmp251: Perdido [estos] (http://www.cplusplus.com/reference/ostream/ostream/operator-free/)? –