entiendo que un puntero constante se puede declarar un par de maneras:C++: Const corrección y puntero argumentos
const int * intPtr1; // Declares a pointer that cannot be changed.
int * const intPtr2; // Declares a pointer whose contents cannot be changed.
// EDIT: THE ABOVE CLAIMS ARE INCORRECT, PLEASE READ THE ANSWERS.
Pero ¿qué pasa con los mismos principios dentro del contexto de argumentos de la función?
quiero suponer que la siguiente es redundante:
void someFunc1(const int * arg);
void someFunc2(int * arg);
Desde someFunc 1 y 2 hacen un pase-por-valor para el indicador sí mismo, es imposible para someFunc1 para cambiar el valor del puntero original, en una llamada dada a la función. Para ilustrar:
int i = 5;
int * iPtr = &i;
someFunc1(iPtr); // The value of iPtr is copied in and thus cannot be changed by someFunc1.
Si esto es verdad, entonces no hay punto en vez de declarar una función con un '* ptr const int' arg tipo, ¿verdad?
Usted tiene sus declaraciones al revés. "const int *" es un puntero modificable a una int inmutable. "int * const" es un puntero inmutable a un int. modificable. –
No, lo tienes al revés. –
Se editó la pregunta para que los gatillos felices gatillo no se salgan mal informados. Dejé el error para que las respuestas aún tengan ese contexto. – Ben