Subpage under development, new version coming soon!
Subject: Programação
... alocacao dinamica, modificacao dinamica de parametros, agilização de certas rotinas... por aí vai
é possível implementar um grafo como um array de arrays, mas olha a quantidade de memória que pode ser inutilmente alocada... em sistemas criticos, é suicídio não usar ponteiros
é possível implementar um grafo como um array de arrays, mas olha a quantidade de memória que pode ser inutilmente alocada... em sistemas criticos, é suicídio não usar ponteiros
ah ta... entao pra esses programinhas besta que o professor passa não serve pra nada mesmo. Bom saber.
Valeu ae.
Valeu ae.
Tenho raiva desses benditos ponteiros, o negocio chato de entender. Pelo menos agora estou aprendendo com um outro professor e comecei a entender como q funciona.
Se quiser eu tenho alguns arquivos em power point e programas de manipulação de filas e pilhas usando ponteiros.
Se quiser eu tenho alguns arquivos em power point e programas de manipulação de filas e pilhas usando ponteiros.
Entender como funcionar eu já entendi. Só nao conseguia ver alguma utilidade pra aquilo.
Os pointers são talvez a característica mais poderosa da linguagem C.
Enquanto uma variável armazenam valores, pointer é um tipo de variável que armazena endereços de memória.
int i;
int *prt;
i = 2;
ptr = &i;
i é uma variável de tipo inteiro (que ocupa 4 bytes de memória) e contém o valor 2
prt é uma variável di tipo pointer (o * é o que caracteriza isso) e o int define qual o máximo valor que ele pode armazenar. Para uma arquitetura de 32bit (como a de um PC, p.ex), int é suficiente para manter endereços de memória, pois int são 4 bytes ou 32bits.
Na expressaão acima, prt=&i; significa que prt contém o endereço de memória da variável i
Assim se o endereço da memória de i for 100 e você fizer ptr conterá o valor 100 e ptr+1 apontará para o endereço 104 (lembre-se que cada variável do tipo int ocupa 4 bytes).
Se você fizer :
*prt = 3;
Você estará alterando o valor da variavel i para 3, pois *prt significa o local (a celula de memória) apontada por prt.
Pointers são úteis para trabalhar com strings, arrays, blocos de memória, structs e você pode mesmo, alterar a lógica do programa em tempo de execução ;)
Enquanto uma variável armazenam valores, pointer é um tipo de variável que armazena endereços de memória.
int i;
int *prt;
i = 2;
ptr = &i;
i é uma variável de tipo inteiro (que ocupa 4 bytes de memória) e contém o valor 2
prt é uma variável di tipo pointer (o * é o que caracteriza isso) e o int define qual o máximo valor que ele pode armazenar. Para uma arquitetura de 32bit (como a de um PC, p.ex), int é suficiente para manter endereços de memória, pois int são 4 bytes ou 32bits.
Na expressaão acima, prt=&i; significa que prt contém o endereço de memória da variável i
Assim se o endereço da memória de i for 100 e você fizer ptr conterá o valor 100 e ptr+1 apontará para o endereço 104 (lembre-se que cada variável do tipo int ocupa 4 bytes).
Se você fizer :
*prt = 3;
Você estará alterando o valor da variavel i para 3, pois *prt significa o local (a celula de memória) apontada por prt.
Pointers são úteis para trabalhar com strings, arrays, blocos de memória, structs e você pode mesmo, alterar a lógica do programa em tempo de execução ;)
Como o rac falou serve mais para alocação dinamica. Sem ponteiros vc aloca uma certa area na memoria e pode nao usar tudo ou pode precisar usar mais. Usando ponteiro vc aloca a qtde certa para aquele momento e se precisar de mais área depois vc usa o ponteiro que vai apontar para outra área de memoria que vc alocou. Por isso que se usa mto ponteiro em listas encadeadas, arvore binaria.
isso ae, os programinhas são só para entender o que o ferdam falou, que *p = 5 é totalmente diferente de int *p; p = 5;
mas na vida real, se vc trabalhar com c/c++ algum dia na sua vida, teu código vai ser 85% manipulacao de ponteiro...
essa é também uma das razões porque c# e java são consideradas de mais alto nível que c/c++ pascal, etc... elas declaram estruturas de dados como tipos da linguagem, e vc se preocupa menos com a alocação propriamente dita e mais com a lógica dos algoritmos
mas na vida real, se vc trabalhar com c/c++ algum dia na sua vida, teu código vai ser 85% manipulacao de ponteiro...
essa é também uma das razões porque c# e java são consideradas de mais alto nível que c/c++ pascal, etc... elas declaram estruturas de dados como tipos da linguagem, e vc se preocupa menos com a alocação propriamente dita e mais com a lógica dos algoritmos
eu tive varias materias em C, por isso entendo bem.
Programação II, Estrutura de dados, Técnicas de busca e ordenação, Linguagens de programação, Compiladores e sistemas de computação.
Programação II, Estrutura de dados, Técnicas de busca e ordenação, Linguagens de programação, Compiladores e sistemas de computação.
Trabalhar com C é pensar em memória o tempo todo.
Realmente, recordar é viver :P
Realmente, recordar é viver :P
Alguém sabe o que mudou na prática do PHP4 pro PHP5?
O PHP4 não tem mais suporte e já tem muitos bugs de segurança.
Se você tem um servidor com PHP4 migre o quanto antes para o PHP5, mas se apenas é usuário, migre da mesma forma e vá se adaptando às possíveis alterações para a nova versão, porque muito em breve, o seus provedor deverá fazer upgrade para o PHP5.
O PHP4 não tem mais suporte e já tem muitos bugs de segurança.
Se você tem um servidor com PHP4 migre o quanto antes para o PHP5, mas se apenas é usuário, migre da mesma forma e vá se adaptando às possíveis alterações para a nova versão, porque muito em breve, o seus provedor deverá fazer upgrade para o PHP5.
ahuhauhuahha
eu jah passei por uma cadeira de Pascal
e agora estou aprendendo JAVA
ainda n cheguei no C :~~
eu jah passei por uma cadeira de Pascal
e agora estou aprendendo JAVA
ainda n cheguei no C :~~
eu hoje entreguei uma agenda em Pascal, rpz foi dureza viu, jah passei no 1º semestre em pascal, soh q ainda tem algumas cadeiras q utilizam Pascal ainda
tinha q fazer o Incluir(mais básico), Alterar(com 2 opções, alterar nome ou telefone), Consultar(mesma coisa do alterar), Relatório(mostrar todos os nº da agenda) e Terminar(salvar e fechar);
Aparentemente eh facil, mas depois q eu fui tentar fazer, mininuh! quebrei a cabeça! :P
tinha q fazer o Incluir(mais básico), Alterar(com 2 opções, alterar nome ou telefone), Consultar(mesma coisa do alterar), Relatório(mostrar todos os nº da agenda) e Terminar(salvar e fechar);
Aparentemente eh facil, mas depois q eu fui tentar fazer, mininuh! quebrei a cabeça! :P
Meu projeto final do 1o ano do curso técnico (lá se vão 10 anos...) foi uma agenda de telefone em Pascal. Muita gente tomou ferro pq alguns espertinhos pegaram exemplos na Internet achando que o professor seria pintinho e não descobriria. Naquela época não era tão comum pessoas com acesso à Internet. Consegui fazer a parada e foi um baita esforço. Meu primeiro contato com linguagem de programação. Como em todos os anos do curso técnico, bem como na faculdade, ajudei muita gente em projetos...
Bons tempos os de Pascal no curso técnico!
(edited)
Bons tempos os de Pascal no curso técnico!
(edited)