Skip to content

Instantly share code, notes, and snippets.

@kaldas
Created September 15, 2010 23:52
Show Gist options
  • Save kaldas/581703 to your computer and use it in GitHub Desktop.
Save kaldas/581703 to your computer and use it in GitHub Desktop.
/**********************************************************
* Ponteiros em C by ~rcaldasmd~ *
* *
* Alguns bons exemplos sobre como utilizar ponteiros em C *
**********************************************************/
#include <stdio.h>
/*************** VARS ****************/
int x, y; //vars do tipo int
int *k; //ponteiros do tipo int
/////////////////////////////////////////////////////////
int main()
{
x = 7;
y = 4;
printf(" X == %i [%p] | Y == %i [%p]\n\n",x,&x,y,&y);
k = &x; //endereco de x eh passado pra k
printf(" Endereco de Memoria de K[%p] == X[%p]\n\n",k,&x);
printf(" K == %i | Pois K = X\n\n",*k);
*k = 9; //o valor de X agora eh 9
/******************************************************************************
* IMPORTANTE.. Se voce utilizar: k = 9 ao invez de *k = 9, vai funcionar mas *
* vai funcionar completamente errado, pois vc vai estar apontando o endereco *
* de k como o valor inteiro 9, (em vez de um endereco de memoria verdadeiro) *
* este erro nao pode acontecer, caso aconteca ele vai gerar o warning abaixo: *
* warning: assignment makes pointer from integer without a cast *
******************************************************************************/
printf(" K = %i | (entao) Valor de X == %i\n\n",*k,x);
printf(" K + Y = %i\n\n",*k + y);
return 0;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment