#include <stdio.h> // scanf(), printf()
#include <stdlib.h> // calloc(), free()
int main()
{
// declarar constante o conteúdo da memória apontada, mas
// o ponteiro poderá ser alterado
const int *x = (const int *) calloc( 1, sizeof(int) );
// aviso por modificar o conteúdo da memória apontada
scanf("%d", x);
// erro por tentar modificar o conteúdo da memória apontada
// *x = 3210;
// declarar constante o conteúdo do ponteiro, mas
// o conteúdo da memória apontada poderá ser modificado
int * const w = (int * const) calloc( 1, sizeof(int) );
// erro por tentar alterar o ponteiro
// w = x;
// modificando o conteúdo da memória apontada
*w = 123456;
printf("x: %d\n", *x );
printf("w: %d\n", *w );
// modificando o ponteiro
x = w;
printf("x: %d\n", *x );
free( (void*)x );
free( (void*)w );
return 0;
}
quarta-feira, 11 de setembro de 2013
Tornando constante o ponteiro ou a memória apontada
O código a seguir apresenta a diferença entre tornar constante o valor do ponteiro ou valor na memória por ele apontada.
2 comentários:
Nossa quando tenho duvidas é esse blogger que acesso te adoro professor abraços.
http://namiradanathynathalia.blogspot.com.br/?zx=638297f91189665a
acesse meu blogger passei aqui para tirar duvidas.
principalmente dos codigos
Adoro esse blogger do senhor professor nas duvidas acesso para tirar duvidas beijos adoro o senhor.
http://egipcianathalia.blogspot.com.br/
http://namiradanathynathalia.blogspot.com.br/
Postar um comentário