Puntero constante en lenguaje C y puntero a objeto constante | Lenguaje C

Antes de discutir punteros constantes y punteros a objetos constantes, primero debemos aclarar qué es un puntero

puntero

Un puntero es una referencia a un objeto de datos o función; un
puntero representa la dirección y el tipo de un objeto o función ; el
puntero declarado (nombre) también es un objeto .

int var = 8848;
int* ptr = &var;

ptr es un puntero int a la variable var

Punteros constantes y punteros a objetos constantes

Puntero constante Al
definir un puntero constante, el puntero debe inicializarse porque su valor no se puede modificar posteriormente.

int var = 8848;
int var_c = 8086;
int* const ptr = &var;

*ptr = 1024;	//OK
ptr = &var_c;	// Error: assignment of read-only variable 'ptr'. 
// prt被const修饰,是一个常量指针,是只读的 

La constante en la tercera línea es seguida por el puntero ptr. Esta constante modifica el objeto de ptr, diciendo que ptr es un puntero constante.
Puntero a objeto constante

int var = 8848;
int var_c = 8086;
int const * ptr;	// 与下一行是等价的
const int* ptr;		// 与上一行是等价的

ptr = &var_c;	// OK
*ptr = 1024;	// Error

El modificador const en el ejemplo anterior es * ptr, por lo que * prt es de solo lectura. Pero ptr es un objeto puntero y ptr no es una constante.

resumen

Puntero constante (un puntero constante a un objeto), enfatizando que el puntero en sí es una constante.
Puntero a un objeto constante, enfatizando que el objeto al que apunta el puntero es una constante.
Por supuesto, también hay punteros constantes a objetos constantes (const int * const prt = & var;)

Supongo que te gusta

Origin blog.csdn.net/qq_40759015/article/details/114363274
Recomendado
Clasificación