Escolar Documentos
Profissional Documentos
Cultura Documentos
Buscar
BLOG FRUM SIT EMAP QUEM SOMOS CONT AT O
Sist ema Operacional Comandos de DOS | Windows | Linux | Mac/BSD Termos de Uso
http://www.tiexpert.net/programacao/c/index.php 1 / 17
C/C++ - Estrutura de Dados - STRUCT 19/10/15
Buscar
BLOG FRUM SIT EMAP QUEM SOMOS CONT AT O
Pro gramao TI Expert Pro grama o C/C++ Es trutura de Dado s - STRUCT Enquete
Algo ritmo Estrutura de Dados - ST RUCT O Go o gle C hro me OS
ir desbancar o
C/C++
O c o nc eito de o rienta o a o bjeto - princ ipalmente c las s es que s ero tratadas mais a frente - Micro so f t Windo ws 7?
Java tem uma bas e muito s lida no c o nc eito de es trutura de dado s . s im
Web As es truturas de dado s c o ns is tem em c riar apenas um dado que c o ntm vrio s membro s , que
no
nada mais s o do que o utras variveis . De uma fo rma mais s imples , c o mo s e uma varivel
HTML/XHTML tives s e o utras variveis dentro dela. A vantagem em s e us ar es truturas de dado s que po demo s parciais vo t ar
JavaScript agrupar de fo rma o rganiz ada vrio s tipo s de dado s diferentes , po r exemplo , dentro de uma
es trutura de dado s po demo s ter junto s tanto um tipo flo at, um inteiro , um c har o u um do uble.
PHP
As variveis que fic am dentro da es trutura de dado s s o c hamadas de membro s .
Sistema Operacio nal
Criando uma estrutura de dado s co m ST RUCT
Co mando s de DOS
Para c riar uma es trutura de dado s us amo s a palavra res ervada s truc t. To da es trutura deve s er
Windo ws c riada antes de qualquer fun o o u mes mo da fun o princ ipal main. To da es trutura tem no me e
s eus membro s s o dec larado s dentro de um blo c o de dado s . Ap s a defini o de s eus membro s
Linux
no blo c o de dado s , terminamo s a linha c o m um po nto -e-vrgula (;). Po rtanto :
Mac/BSD
1. struct nome_da_estrutura { tipo_de_dado nome_do_membro; };
Office
Wo rd / Writer Po r exemplo , s e fo s s emo s c riar uma es trutura de dado s para s imbo lar uma data faramo s :
Po rtanto , a varivel ho je dec larada c o mo s endo um tipo de dado data. Data uma es trutura de
dado s que tem trs c arac ters tic as (o u trs membro s ) inteiro s : dia, mes e ano . Co mo ho je um
tipo de dado data, ele o btm o s mes mo s trs membro s . Para ac es s ar c ada membro , us amo s a
varivel e depo is o no me do membro que queremo s ac es s ar s eparado s po r po nto (.).
Go s to u? Es te artigo fo i
Indique no s s o s ite! lido 131687 vez es
Sist ema Operacional Comandos de DOS | Windows | Linux | Mac/BSD Termos de Uso
http://www.tiexpert.net/programacao/c/struct.php 2 / 17
C/C++ - Estrutura de Dados - STRUCT 19/10/15
reas do Sit e Downloads | Frum | Blog
http://www.tiexpert.net/programacao/c/struct.php 3 / 17
C/C++ - Typedef - Denio de Nomes de Tipos 19/10/15
Buscar
BLOG FRUM SIT EMAP QUEM SOMOS CONT AT O
Pro gramao TI Expert Pro grama o C/C++ Typedef - Defini o de No mes de Tipo s Enquete
Algo ritmo T ypedef O Go o gle C hro me OS
ir desbancar o
C/C++
Em C e C++ po demo s redefinir um tipo de dado dando -lhe um no vo no me. Micro so f t Windo ws 7?
Java s im
Es s a fo rma de pro grama o ajuda em do is s entido s : 1. Fic a mais s imples entender para que
Web s erve tal tipo de dado ; 2. a nic a fo rma de c o ns eguirmo s referenc iar uma es trutura de dado s
no
dentro de o utra (s truc t dentro de s truc t).
HTML/XHTML
Para redefinirmo s o no me de um tipo de dado us amo s o c o mando typedef, que pro vm de t ype parciais vo t ar
JavaScript def initio n.
PHP Typedef faz o c o mpilado r as s umir que o no vo no me um c erto tipo de dado , e ento , pas s amo s
a us ar o no vo no me da mes ma fo rma que us aramo s o antigo .
Sistema Operacio nal
Po r exemplo , po demo s definir que, ao invs de us armo s int, ago ra us aremo s inteiro o u, ao invs
Co mando s de DOS de us armo s flo at, us aremo s dec imal.
Windo ws Typedef deve s empre vir antes de qualquer pro grama o que envo lva pro c edimento s (pro t tipo
Linux de fun es , fun es , fun o main, s truc ts , etc .) e s ua s intas e bas e :
Ago ra, que j po s s umo s uma es trutura de dado s definida c o m um no me, n s po demo s utiliz -la
dentro de o utra es trutura de dado s . Po r exemplo :
http://www.tiexpert.net/programacao/c/typedef.php 4 / 17
C/C++ - Typedef - Denio de Nomes de Tipos 19/10/15
09. unsigned int ano;
10. } Data;
11.
12. typedef struct aniversario {
13. char nome[50];
14. Data nascimento;
15. } Aniversario;
16.
17. int main (){
18. Aniversario alguem;
19. cout << "Digite o nome de alguem" << endl;
20. cin.getline (alguem.nome, 50);
21. cout << "Digite o dia que esta pessoa nasceu" << endl;
22. cin >> alguem.nascimento.dia;
23. cout << "Digite o mes que esta pessoa nasceu" << endl;
24. cin >> alguem.nascimento.mes;
25. cout << "Digite o ano que esta pessoa nasceu" << endl;
26. cin >> alguem.nascimento.ano;
27. system ("cls");
28. cout << alguem.nome << endl;
29. cout << "nasceu em ";
30. cout << alguem.nascimento.dia<<"/";
31. cout << alguem.nascimento.mes<<"/";
32. cout << alguem.nascimento.ano<<endl;
33. system ("pause");
34. return EXIT_SUCCESS;
35. }
Fa a o Do wnlo ad des te C digo
No algo ritmo ac ima, o btemo s o no me da pes s o a dentro de uma s tring na s truc t anivers ario , e
dentro des ta es trutura tambm h o utra s truc t que define o s dado s c o ntido s em qualquer data
(dia, ms e ano ). Ento , dec laramo s uma varivel c hamada alguem do tipo aniversario (que na
verdade o struct aniversario). Pegamo s uma s tring e guardamo s dentro do membro no me. As
datas s o ac es s adas da mes ma fo rma, mas c o m um detalhe. Co mo alguem po s s ui o utro s truc t
dec larado dentro dele c o m o no me de nas c imento , devemo s primeiro ac es s ar a varivel
nas c imento para s depo is ac es s ar o membro de s ua es trutura. Es s e c o nc eito impo rtante
entender, po rque po dem exis tir muitas es truturas aninhadas e para ac es s ar um determinado tipo
de dado devemo s perc o rrer to da es trutura. c o mo s e es tivs s emo s entrando em vrias pas tas
diferentes at c hegar ao arquivo que queremo s e, ao invs , de s eparar c ada es trutura c o m uma
barra (c o mo ac o ntec e c o m as pas tas ), n s s eparamo s c ada es trutura c o m um po nto .
Go s to u? Es te artigo fo i
Indique no s s o s ite! lido 87694 vez es
Sist ema Operacional Comandos de DOS | Windows | Linux | Mac/BSD Termos de Uso
http://www.tiexpert.net/programacao/c/typedef.php 5 / 17
C/C++ - Ponteiros, referncia e dereferncia 19/10/15
S iga-no s no T wit t er
FEED RS S - O que isso ?
Adicio ne ao s Favo rit o s
Buscar
BLOG FRUM SIT EMAP QUEM SOMOS CONT AT O
Pro gramao TI Expert Pro grama o C/C++ Po nteiro s , refernc ia e derefernc ia Enquete
Algo ritmo Ponteiros O Go o gle C hro me OS
ir desbancar o
C/C++
Po nteiro s s o as mais po dero s as e tambm as mais c o ntro vers as ferramentas da linguagem C e Micro so f t Windo ws 7?
Java C++. s im
Web Po nteiro s fo ram abo lido s de linguagens no vas bas eadas em C, c o mo po r exemplo Java. Mas , um
no
pro grama que utiliz a po nteiro s s abiamente tem um des empenho muito maio r, po is po nteiro s
HTML/XHTML trabalham diretamente c o m a mem ria. Des s a fo rma, pratic amente, po demo s manipular to da a parciais vo t ar
JavaScript quantia de mem ria do c o mputado r, mes mo que s eja po uc a o u muita.
PHP Po nteiro s c o mo o pr prio no me diz , quem apo nta. Sua nic a fun o , mas de extrema
impo rtnc ia, guardar o endere o de mem ria de uma varivel.
Sistema Operacio nal Quando dec laramo s uma varivel e exec utamo s o pro grama, o s is tema o perac io nal s e enc arrega
Co mando s de DOS de alo c ar (res ervar) o es pa o nec es s rio para o tipo de dado e "marc a" aquele es pa o de
mem ria c o m um no me, que o no me da varivel. O papel do po nteiro guardar exatamente
Windo ws es te endere o .
Linux Co mo po nteiro s guardam endere o s de mem ria, po demo s guardar o endere o de qualquer
Mac/BSD parte da mem ria, mes mo que es te es pa o no tenha s ido res ervado no inc io da exec u o do
pro grama.
Office
Po demo s dec larar po nteiro s o u us ar referenc iamento e dereferenc iamento . Po nteiro s s o
Wo rd / Writer dec larado s c o mo s e fo s s em variveis , mas c o ntendo um indic ado r (que um as teris c o ).
Excel / Calc Po r exemplo , s e fo rmo s c riar do is po nteiro s , s endo um para um endere o de mem ria c o ntendo
um dado flo at e o utro c o ntendo um int, faramo s :
reas do Site
1. float *ponteiroFloat
Do wnlo ad
2. int *ponteiroInt
F rum
Pro nto , ago ra j temo s no s s o s po nteiro s c riado s . Ago ra, vamo s ver realmente c o mo eles
Blo g
func io nam.
Parc erias Referncia
Reco mendamo s Refernc ia quando no s referimo s diretamente ao identific ado r do endere o da mem ria.
A mem ria na verdade uma grande tabela c o m c lulas s equenc iais , c ada c lula tem s eu pr prio
endere o que s egue um padro c o ntnuo . Ou s eja, a primeira c lula s er 0x00000000, a s egunda
Anncio s Go o gle
0x00000001, a terc eira 0x00000002, e as s im po r diante.
C++ Quando faz emo s refernc ia, es tamo s o btendo exatamente es te valo r, que o endere o da c lula
na mem ria.
Programacao A refernc ia dada pelo o perado r &.
Java to c++ Ento , vamo s imaginar que temo s uma varivel inteira c hamada var1 que vale 100. Iremo s c riar
um po nteiro c hamado ptr1 que ir o bter o endere o de mem ria o nde es t var1.
Perc eba que aqui n s atribumo s a ptr1 o endere o de mem ria de var1 (&var1) e no o valo r
c o ntido em var1.
Po rtanto , o valo r de ptr1 no s er 100, mas um endere o de mem ria 0x "algum hexadec imal".
Po is impo s s vel s aber qual s er o endere o de uma varivel antes da exec u o do pro grama.
Dereferncia
Derefernc ia quando no s referimo s ao valo r c o ntido no endere o armaz enado , o u s eja, o
c o ntrrio da o pera o de refernc ia.
A derefernc ia bus c a o valo r que es t no endere o gravado no po nteiro , is s o quer diz er que o
valo r o btido no es t no po nteiro , mas no endere o que ele apo nta. impo rtante entender is s o
po rque quando alteramo s o valo r referenc iado pelo po nteiro , na verdade es tamo s alterando o
valo r da varivel o riginal e no do po nteiro .
A dereferenc ia dada pelo o perado r *.
Ainda us ando o exemplo da varivel var1.
Go s to u? Es te artigo fo i
Indique no s s o s ite! lido 33036 vez es
Sist ema Operacional Comandos de DOS | Windows | Linux | Mac/BSD Termos de Uso
http://www.tiexpert.net/programacao/c/ponteiros.php 7 / 17
C/C++ - Ponteiros de Struct 19/10/15
S iga-no s no T wit t er
FEED RS S - O que isso ?
Adicio ne ao s Favo rit o s
Buscar
BLOG FRUM SIT EMAP QUEM SOMOS CONT AT O
Linux Po rtanto , po demo s c riar no s s o s truc t do mes mo jeito de s empre e no s s o po nteiro tambm. Mas ,
quando fo rmo s ac es s ar um membro des s a es trutura us ando um po nteiro n s no us aremo s um
Mac/BSD po nto , mas uma s eta.
Office Vejamo s :
Wo rd / Writer 01. #include <iostream>
Excel / Calc 02. #include <cstdlib>
03. using namespace std;
reas do Site 04.
05. typedef struct data Data;
Do wnlo ad
06.
F rum 07. struct data {
08. short dia;
Blo g 09. short mes;
10. int ano;
Parc erias 11. };
12.
Reco mendamo s
13. int main (void){
14. Data data; //varivel data do tipo struct data
Anncio s Go o gle 15. Data *hoje; //ponteiro hoje para um tipo struct data
16. hoje = &data; //hoje aponta para o endereo de data
Struct c++ 17.
18. //dados sendo inseridos na varivel data
19. hoje->dia = 20;
20. hoje->mes = 1;
21. hoje->ano = 2009;
22.
23. //mostrando o que est gravado no endereo contido em hoje
24. cout << "Data registrada:"<<endl;
25. cout << hoje->dia <<"/"<< hoje->mes <<"/"<< hoje->ano << endl;
26. system ("pause");
27. }
Ago ra, h mais uma maneira de ac es s armo s um membro da es trutura us ando um po nteiro . Es ta
o utra fo rma c o ns is te em indic ar de qual po nteiro no s referimo s c o lo c ando o dereferenc iado r
entre parentes es , as s im (*ho je). Des s a fo rma po demo s ac es s ar diretamente us ando um po nto
(.).
No exemplo abaixo us amo s apenas po nteiro s c o m dereferenc iado r para es c rever no struct data.
Go s to u? Es te artigo fo i
Indique no s s o s ite! lido 54642 vez es
http://www.tiexpert.net/programacao/c/ponteiro-struct.php 8 / 17
C/C++ - Ponteiros de Struct 19/10/15
Pginas Relacio nadas
Sist ema Operacional Comandos de DOS | Windows | Linux | Mac/BSD Termos de Uso
http://www.tiexpert.net/programacao/c/ponteiro-struct.php 9 / 17
C/C++ - Ponteiro de Vetor 19/10/15
S iga-no s no T wit t er
FEED RS S - O que isso ?
Adicio ne ao s Favo rit o s
Buscar
BLOG FRUM SIT EMAP QUEM SOMOS CONT AT O
Go s to u? Es te artigo fo i
Indique no s s o s ite! lido 37480 vez es
Sist ema Operacional Comandos de DOS | Windows | Linux | Mac/BSD Termos de Uso
http://www.tiexpert.net/programacao/c/ponteiro-vetor.php 11 / 17
C/C++ - Ponteiro Como Argumento de Funo 19/10/15
S iga-no s no T wit t er
FEED RS S - O que isso ?
Adicio ne ao s Favo rit o s
Buscar
BLOG FRUM SIT EMAP QUEM SOMOS CONT AT O
Pro gramao TI Expert Pro grama o C/C++ Po nteiro Co mo Argumento de Fun o Enquete
Algo ritmo Ponteiros como Argumento de Funes O Go o gle C hro me OS
ir desbancar o
C/C++
Vimo s at ago ra, qual a impo rtnc ia do s po nteiro s , c o mo utiliz -lo s e princ ipalmente qual s ua Micro so f t Windo ws 7?
Java s intaxe. s im
Web Ago ra, c o me aremo s a tratar de po nteiro s em t pic o s mais avan ado s , c o me ando c o m o us o
no
de po nteiro s c o mo argumento de fun es .
HTML/XHTML
Primeiramente, iremo s entender qual a vantagem de us armo s po nteiro s c o mo argumento s . parciais vo t ar
JavaScript
At ago ra, apenas havamo s utiliz ado argumento s de valo res .
PHP
Os argumento s de valo res s o c pias do s valo res do s dado s pas s ado s a fun o em s ua
Sistema Operacio nal c hamada.
A idia da fun o ac ima pas s ar o valo r de uma varivel para o utra. Mas , ao exec utarmo s es te
c digo , perc ebemo s que ao final o s valo res de var1 e var2 c o ntinuam o s mes mo s .
Po r qu? Simples . O que fo i tro c ado dentro da fun o tro c ar fo i a c pia do s valo res de var1 e
var2 que s o a e b dentro da fun o . Ou s eja, o que fo i alterado na verdade fo i o valo r de a que
pas s o u para b e b que pas s o u para a.
A tro c a ac o ntec eu, mas no c o m as variveis que queramo s .
Mas , s e ao invs de utiliz armo s o valo r da varivel, utiliz s s emo s s ua refernc ia de mem ria, o u
s eja, o s eu po nteiro .
Des s a fo rma, a fun o s aberia que o valo r a s er tratado j exis te e es t exatamente no lo c al da
mem ria que indic armo s . Po rtanto , o valo r que s eria tratado dentro da fun o no s eria uma
c pia, mas a varivel o riginal.
Ento , vamo s refo rmular a fun o do exemplo anterio r us ando a refernc ia do s po nteiro s
(endere o s c o ntido s no s po nteiro s ) c o mo argumento s des s a vez .
http://www.tiexpert.net/programacao/c/ponteiro-como-argumento-de-funcao.php 12 / 17
C/C++ - Ponteiro Como Argumento de Funo 19/10/15
Go s to u? Es te artigo fo i
Indique no s s o s ite! lido 25486 vez es
C/C++ - Fun es
C/C++ - Fun es de Sada em C++
C/C++ - Fun es (c o m argumento s )
C/C++ - Po nteiro s de Struc t
C/C++ - Rec urs ividade
C/C++ - Fun es de Entrada em C++
C/C++ - Po nteiro s para Po nteiro s
C/C++ - Po nteiro s , refernc ia e derefernc ia
C/C++ - Fun es de Sada em C
C/C++ - Fun es de Entrada em C
Sist ema Operacional Comandos de DOS | Windows | Linux | Mac/BSD Termos de Uso
http://www.tiexpert.net/programacao/c/ponteiro-como-argumento-de-funcao.php 13 / 17
C/C++ - Ponteiros para Ponteiros 19/10/15
S iga-no s no T wit t er
FEED RS S - O que isso ?
Adicio ne ao s Favo rit o s
Buscar
BLOG FRUM SIT EMAP QUEM SOMOS CONT AT O
Pro gramao TI Expert Pro grama o C/C++ Po nteiro s para Po nteiro s Enquete
Algo ritmo Ponteiros para Ponteiros O Go o gle C hro me OS
ir desbancar o
C/C++
C/C++ no s permite c riar, tambm, po nteiro s c o m nveis de apo ntamento . O que is s o quer diz er? Micro so f t Windo ws 7?
Java Simples . po s s vel c riar um po nteiro que apo nte para o utro po nteiro , c riando as s im nveis , po is s im
um po nteiro po der apo ntar para o utro po nteiro , que, po r s ua vez , apo nta para o utro po nteiro ,
Web que apo nta para um po nteiro diferente e as s im po r diante. no
HTML/XHTML A s intaxe para s e c riar po nteiro s para po nteiro s a mes ma de po nteiro s c o muns , apenas a parciais vo t ar
JavaScript fo rma de ac es s ar s eus valo res diferente, po is para c ada nvel de apo ntamento us aremo s um
dereferenc iado r. Po r exemplo , s e um po nteiro apo nta para um po nteiro que apo nta para um valo r
PHP inteiro , para ac es s armo s es s e valo r inteiro a partir do primeiro po nteiro us aramo s do is
as ters c o s (**), ao invs de apenas um (*).
Sistema Operacio nal
Is s o s e d ao fato que um po nteiro po de mudar o valo r de o utro po nteiro de ac o rdo c o m s eu
Co mando s de DOS nvel.
Windo ws O exemplo abaixo demo ns tra uma s intaxe s imples .
Linux
01. #include <iostream>
Mac/BSD 02. using namespace std;
03.
Office 04. int main (void) {
Wo rd / Writer 05. int a=10, b=50;
06. int *ptr; // ponteiro de inteiro
Excel / Calc 07. int **ptrPtr; // ponteiro de um ponteiro inteiro
reas do Site 08. ptr = &a;
09. ptrPtr = &ptr;
Do wnlo ad 10. cout << "O valor final de ptrPtr e " << **ptrPtr << endl;
11. system("pause");
F rum
12. return EXIT_SUCCESS;
Blo g 13. }
Parc erias O c digo ac ima c o ntem duas variveis inteiras (a e b) inic ializ ado s c o m o s valo res 10 e 50
res pec tivamente. Lo go ap s , h uma varivel de po nteiro (*ptr) e uma varivel de po nteiro para
Reco mendamo s po nteiro (**ptrPtr).
Ento , atribuimo s o endere o da varivel inteira a em *ptr. Ago ra *prt apo nta para a. Ap s is s o ,
Anncio s Go o gle atribuimo s o endere o do po nteiro *ptr ao po nteiro **ptrPtr. Nes te mo mento **ptrPtr pas s a
apo ntar para *ptr.
C c++ Nes s e ins tante devemo s pres tar atenc o no s eguinte detalhe, no mo mento da impres s o da
mens agem "O valor final de ptrPtr e "... us amo s o po nteiro do po nteiro para c hegar at o
Programacao valo r de a.
Java c++ Entendendo o s Nveis de Apo ntamento
Quando us amo s po nteiro s de po nteiro s po demo s us ar o s nveis de apo ntamento que s o
determinado s pelo nmero de as teris c o s que prec edem o po nteiro .
Po rtanto , s e um po nteiro apo nta para um po nteiro que tambm apo nta para um po nteiro que
c o ntem um endere o de uma varivel char, us aramo s nes te c as o trs as ters c o s .
Para entender melho r o ac es s o indireto que o po nteiro exec uta, vejamo s o diagrama abaixo .
Func io namento de po nteiro para po nteiro na mem ria
Es te diagrama demo ns tra o que c ada um do s as teris c o s repres enta. Sabendo dis s o po s s vel
alterar tanto o valo r final da varivel quanto o endere o apo ntado pelo s po nteiro s intermedirio s .
Vejamo s a exemplific a o abaixo .
http://www.tiexpert.net/programacao/c/ponteiro-para-ponteiro.php 14 / 17
C/C++ - Ponteiros para Ponteiros 19/10/15
A princ pio atribuimo s o endere o da varivel var1 ao po nteiro ptr. Depo is , atribuimo s o endere o
do po nteiro ptr ao po nteiro ptrPtr.
Na primeira vez que mandamo s imprimir **ptrPtr (Impo rt ant e! No te o s do is as teris c o s ) s er
apres entado o valo r c o ntido em var1, po rque ptrPtr ac es s a var1 indiretamente pelo po nteiro ptr.
Quando faz emo s a o pera o *ptrPtr = &var2;, na verdade, no es tamo s alterando o valo r
c o ntido em var1, mas o endere o c o ntido no po nteiro ptr, po rque us amo s apenas um as teris c o
em ptrPtr.
Ou s eja, us ando apenas um as teris c o ac es s aremo s o po nteiro , no o valo r apo ntado pelo
po nteiro . Vejamo s :
Es s e as ters c o repres enta exatamente o po nteiro intermedirio . Po rtanto , ago ra o po nteiro ptr
no apo nta mais para var1, ele apo nta para var2.
Na s egunda vez que imprimimo s o valo r de **ptrPtr no aparec er o valo r de var1, mas o valo r
de var2, po rque o endere o c o ntido no po nteiro intermedirio ptr fo i alterado para apo ntar para
var2.
Go s to u? Es te artigo fo i
Indique no s s o s ite! lido 38257 vez es
Sist ema Operacional Comandos de DOS | Windows | Linux | Mac/BSD Termos de Uso
http://www.tiexpert.net/programacao/c/ponteiro-para-ponteiro.php 15 / 17
C/C++ - Ponteiros Nulos e Vazios (Null Pointers e Void Pointers) 19/10/15
Buscar
BLOG FRUM SIT EMAP QUEM SOMOS CONT AT O
Pro gramao TI Expert Pro grama o C/C++ Po nteiro s Nulo s e Vaz io s (Null Po inters e Vo id Po inters ) Enquete
Algo ritmo Ponteiros Nulos e Vazios O Go o gle C hro me OS
ir desbancar o
C/C++
At o mo mento , temo s es tudado vrio s tipo s de po nteiro s que apo ntam para o utro s lugares e Micro so f t Windo ws 7?
Java as s im po r diante. Mas , C e C++ po s s uem o utras fo rmas de po nteiro s , e, no o brigato riamente, s im
um po nteiro tem que apo ntar para algum lugar, po is um po nteiro s imples mente po de apo ntar para
Web lugar nenhum. no
HTML/XHTML Null Po inters (Po nteiro s Nulo s) parciais vo t ar
JavaScript Nem s empre um po nteiro deve apo ntar para algum lugar, princ ipalmente s e es te lugar ainda no
PHP exis tir. Ento , po s s vel um po nteiro s er nulo .
Sistema Operacio nal Para um po nteiro apo ntar para lugar algum devemo s lhe atribuir o valo r inteiro 0, o u a c o ns tante
NULL. No impo rta s e o po nteiro fo r do tipo flo at, int, c har, etc ., po is auto matic amente haver um
Co mando s de DOS typec as ting para o tipo de dado c o rreto .
Windo ws impo rtante entender es te c o nc eito de po nteiro nulo po rque fac ilita o trabalho c o m es truturas de
mem ria dinmic as c o mo lis tas enc adeadas , filas , arvo res binrias , etc . Po is , na maio r parte do
Linux
tempo exis tir um po nteiro , mas no um endere o fs ic o j c riado na mem ria.
Mac/BSD
01. #include <iostream>
Office 02. using namespace std;
03.
Wo rd / Writer
04. int main (void) {
Excel / Calc 05. int *nullPointer;
06. nullPointer = NULL;
reas do Site 07. cout << nullPointer << endl;
Do wnlo ad 08. system ("pause");
09. return EXIT_SUCCESS;
F rum 10. }
Blo g
Vo id Po inters (Po nteiro s Vazio s)
Parc erias Chamamo s de po nteiro s vaz io s qualquer po nteiro que no po s s ua um tipo de dado es pec fic o , o u
Reco mendamo s s eja, s e s eu tipo de dado fo r vo id.
Po nteiro s vaz io s o u vo id po inters s o po nteiro s genric o s que po dem apo ntar para qualquer
o utro tipo de dado , mas traz em c o ns igo pro blemas l gic o s .
Anncio s Go o gle
Tais pro blemas res idem no fato de que c o mo s o po nteiro s vaz io s - no h um tipo de dado
Void pointer es pec fic o - ento , no po demo s determinar s eu tamanho , as s im c o mo tambm no po demo s
dereferenc i-lo diretamente.
Null pointer Es s es pro blemas s o fac ilmente res o lvido s s e induz irmo s o endere o vo id para o endere o do
tipo de dado c o rreto , da mes ma fo rma que exec utamo s qualquer typec as t.
C c++ c#
Entender o c o nc eito de vo id po int ers (po nteiro s vaz io s ) de s uma impo rtnc ia para a
c o mpreens o de es truturas dinmic as de mem ria, po rque trabalharemo s o tempo to do c o m
fun es que reto rnam endere o s de mem ria genric o s (que po dem s er qualquer tipo de
endere o de mem ria, po rtanto s em tipo de dado - vo id).
Co mo demo ns trado no exemplo ac ima, po nteiro s vaz io s po dem apo ntar para qualquer tipo de
dado (inteiro , flo at, c har, etc ), po rm no po dem s er dereferenc iado s diretamente. Para
c o nto rnar es te pro blema, us amo s typec as t para que um po nteiro c o nc reto po s s a s er
dereferenc iado no lugar do po nteiro genric o .
Go s to u? Es te artigo fo i
Indique no s s o s ite! lido 24528 vez es
http://www.tiexpert.net/programacao/c/null-pointer-void-pointer.php 16 / 17
C/C++ - Ponteiros Nulos e Vazios (Null Pointers e Void Pointers) 19/10/15
Web HTML/XHTML | JavaScript | PHP Contato
Sist ema Operacional Comandos de DOS | Windows | Linux | Mac/BSD Termos de Uso
http://www.tiexpert.net/programacao/c/null-pointer-void-pointer.php 17 / 17