Duplicar posibles:
what is the difference between const int*, const int * const, int const *Diferencia entre const char * p y const char * p
Are there any Difference between const char* p and char const* p
Duplicar posibles:
what is the difference between const int*, const int * const, int const *Diferencia entre const char * p y const char * p
Are there any Difference between const char* p and char const* p
Algunas de las palabras no están en el mismo orden.
(no hay diferencia semántica hasta que la const se mueve en relación a la estrella)
Me reí de esto más de lo que las reglas de SO me permiten hacer. –
Hahahaha .. épica! :RE –
No hay diferencia funcional entre los dos. El más "preciso" es char const * p
porque la semántica es de derecha a izquierda.
No hay diferencia semántica, pero es una cuestión de estilo de codificación y legibilidad. Para expresiones complejas, la lectura de derecha a izquierda funciona bien:
char const ** const
es una const pointer to a pointer to a constant char
.
Por lo tanto, char const *
es más coherente en este sentido. Muchas personas, sin embargo, prefieren const char*
por su facilidad de lectura; está claro de inmediato lo que significa.
const char* p
es un puntero a un const char
.
char const* p
es un puntero a un char const
.
Dado que const char
y char const
es lo mismo, es lo mismo.
Sin embargo, tenga en cuenta:
char * const p
es un puntero a un char const
(no constante). Es decir. puede cambiar el carácter real, pero no el puntero que lo señala.
No hay diferencia, ya que la posición del '*' no se ha movido.
1) const char * p - Puntero a un char constante ('p' no se puede modificar, pero el puntero es)
2) const char * p - También puntero a una constante Char
Sin embargo, si tenía algo como:
char * const p - Esto declara que 'p' es un puntero constante de un char. (Char p es modificable pero el puntero no lo es)
The dupe está aquí: http://stackoverflow.com/q/890535/694576 donde no estuvo cerca, ya que este último es sobre C++. – alk