Recursividade, Alocação de Memória e Estrutura de Dados em C
Programação 1
Recursividade
Recursividade é a capacidade de uma função de chamar a si mesma, que tem uma série de utilidades práticas na programação em C. Por exemplo pode-se usar uma função recursiva para contagens ou facilitar loops.
Entretanto, vale ressaltar que o perigo de uma função que chame a si mesma entre em um loop infinito é muito grande, logo, é necessário que se tome medidas para assegurar que o código pare de chamar a função em algum momento.
(Autoria Própria do Grupo)
Exemplo de Código em C:
#include
int fatorial(int n)
{
if(n == 1) return 1; else return ( n * fatorial(n-1) );
}
int main()
{
int n; printf("Digite um inteiro positivo: "); scanf("%d", &n);
printf("%d! = %d\n", n, fatorial(n));
}
(http://www.cprogressivo.net/2013/03/O-que-sao-e-como-usar-funcoes-recursivas-em-linguagem-C.html)
Alocação de Memória
Em C, existem dois tipos de se alocar memória, Alocação Dinâmica e Alocação Estática.
Alocação Estática: É o tipo clássico de alocação de memória quando normalmente se fala do assunto, a memória é alocada ao início do programa, não podendo ser alterada depois.
Alocação Dinâmica: Nesse tipo de alocação, entretanto, é possível que se altere o local alocado na memória para uma ou mais variáveis. Vale ressaltar que esse tipo de memória é acessada através de ponteiros, além disso, a região da memória dinamicamente alocada é chamada de heap.
(Autoria Própria do Grupo)
Exemplo de Código em C(comentário adicionado pelo grupo): int a[10], *b; //Alocação, respectivamente, estática e dinâmica b = a; b[5] = 100;
Printf(“%d\n”, a[5]);
Printf(“%d\n”, b[5]);
(http://homepages.dcc.ufmg.br/~rfortes/aeds/2/slides/alocacaodinamica.pdf)
Estruturas de Dados
Estruturas de Dados são um conjunto de variáveis que podem ser acessadas por todo o programa, ou seja, podem ser lidas e alteradas por