Requisito previo: Punteros
Hay mucha confusión cuando char, const, *, p se usan en diferentes permutaciones y los significados cambian según cuál se coloca dónde. El siguiente artículo se centra en la diferenciación y el uso de todos estos.
El calificador const se puede aplicar a la declaración de cualquier variable para especificar que su valor no cambiará. La palabra clave const se aplica a lo que esté inmediatamente a su izquierda. Si no hay nada a su izquierda, se aplica a lo que esté inmediatamente a su derecha.
1. const char *ptr: este es un puntero a un carácter constante. No puede cambiar el valor señalado por ptr, pero puede cambiar el puntero en sí . “const char *” es un puntero (no const) a un const char.
C
// C program to illustrate // char const *p #include<stdio.h> #include<stdlib.h> int main() { char a ='A', b ='B'; const char *ptr = &a; //*ptr = b; illegal statement (assignment of read-only location *ptr) // ptr can be changed printf( "value pointed to by ptr: %c\n", *ptr); ptr = &b; printf( "value pointed to by ptr: %c\n", *ptr); }
C
// C program to illustrate // char* const p #include<stdio.h> #include<stdlib.h> int main() { char a ='A', b ='B'; char *const ptr = &a; printf( "Value pointed to by ptr: %c\n", *ptr); printf( "Address ptr is pointing to: %d\n\n", ptr); //ptr = &b; illegal statement (assignment of read-only variable ptr) // changing the value at the address ptr is pointing to *ptr = b; printf( "Value pointed to by ptr: %c\n", *ptr); printf( "Address ptr is pointing to: %d\n", ptr); }
C
// C program to illustrate //const char * const ptr #include<stdio.h> #include<stdlib.h> int main() { char a ='A', b ='B'; const char *const ptr = &a; printf( "Value pointed to by ptr: %c\n", *ptr); printf( "Address ptr is pointing to: %d\n\n", ptr); // ptr = &b; illegal statement (assignment of read-only variable ptr) // *ptr = b; illegal statement (assignment of read-only location *ptr) }
Publicación traducida automáticamente
Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA