Created
September 15, 2010 23:52
-
-
Save kaldas/581703 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/********************************************************** | |
* 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