Crie e use uma variedade de ponteiros em C

Crie e use uma variedade de ponteiros em C
Matrizes e ponteiros estão entre as estruturas de dados mais fundamentais no idioma C. Eles nos permitem criar programas flexíveis e fáceis de gerenciar com apenas algumas linhas de código.

A maioria de nós está familiarizada com a criação de matrizes com tipos de dados, como números inteiros, caracteres ou carros alegóricos. Este guia mostrará como criar uma variedade de indicadores e usá -lo para armazenar dados.

Como criar uma matriz

Podemos definir uma matriz como uma coleção de itens. Por exemplo, uma matriz pode armazenar nomes de 100 pessoas e tal.

Para declarar uma matriz em C, usamos a sintaxe:

Datatype ARRNAME [ARRSIZE];

Aqui, o tipo de dados refere -se ao tipo de matriz, que pode ser um número inteiro, flutuação, um personagem ou um ponteiro.

O nome Arn refere -se ao nome dado à matriz, que pode ser qualquer termo descritivo para a variável, desde que obedece às regras de nomear uma variável em c.

Finalmente, o ArrSize refere -se ao número total de itens para armazenar na matriz. Este valor é constante e imutável, uma vez declarado.

Por exemplo, podemos definir uma variedade de números inteiros para armazenar 10 valores como:

int myarray [10];

Também podemos definir e inicializar uma matriz na mesma linha. Por exemplo, para definir a matriz acima e preenchê -la com os valores necessários, podemos fazer:

int myarray [10] = 1,2,3,4,5,6,7,8,9,10;

Também podemos fazer o mesmo sem especificar explicitamente o tamanho da matriz. Considere o exemplo abaixo:

int myarray [] = 1,2,3,4,56,7,8,9,10;

Para acessar itens em uma matriz, usamos o método de indexação especificando o nome da matriz seguido pelo índice do item que desejamos acessar.

Por exemplo, para acessar o item no índice 5, podemos fazer

printf ("%d", myarray [5]);

Nesse caso, deve devolver o 6º Item na matriz porque a indexação da matriz começa em 0. Portanto, o primeiro item é em 0, o segundo item em 1 e assim por diante.

Também podemos usar o método acima para modificar os valores em uma matriz.

Aqui está um exemplo:

myarray [5] = 5;

A declaração acima mudará o valor da matriz no índice 5 a 5.

C Ponteiros

Ponteiros são variáveis ​​que podemos usar para armazenar endereços de valores em um programa. Por exemplo, quando você define uma variável, ele recebe um endereço de memória que você pode acessar usando o
&varname;

Por exemplo:

int i = 10;
printf ("%p", & i);

O código acima deve fornecer o endereço para a variável "i". Observe que este endereço pode variar toda vez que você executa o programa.

Aqui está um exemplo de endereço:

0061FF1C

Declarando um ponteiro

Para declarar um ponteiro em C, usamos o tipo seguido de um asterisco e o nome da variável.

Por exemplo:

int *ptr, i;

Para atribuir um endereço ao ponteiro, podemos fazer:

int i = 10;
ptr = & i;

No exemplo acima, definimos o endereço da variável "i" para *ptr.

int *ptr, i;
i = 10;
ptr = & i;
printf ("%p", *ptr);

Acessando valores de um ponteiro

Podemos acessar os valores armazenados em um endereço de ponteiro usando a notação de asterisco (*). Por exemplo:

int *ptr, i;
i = 10;
ptr = & i;
printf ("%d", *ptr);

Nesse caso, obtemos o valor específico armazenado e não o endereço do valor.

Matriz de ponteiros

Ao criarmos uma variedade de valores inteiros nos exemplos acima, podemos criar uma matriz de um ponteiro-basicamente, uma matriz que armazena endereços de memória.

Para fazer isso, podemos usar a sintaxe:

int *pTraRray [10];

Neste exemplo, temos uma matriz de 10 ponteiros inteiros, permitindo que você armazene endereços de memória de 5 variáveis ​​inteiras.

Por exemplo, podemos ter o código simples abaixo:

#incluir
int main ()
int *pTraRray [4];
int w = 100, x = 200, y = 300, z = 400;
pTRARRAY [0] = & w;
pTraRray [1] = & x;
pTRARRAY [2] = & y;
pTraRray [3] = & z;
para (int i = 0; i< 4; i++)
printf ("O valor %d possui o adddress %d \ n", *pTraRray [i], ptrarray [i]);

retornar 0;

Depois de compilar e executar o código acima, devemos obter resultados semelhantes aos abaixo:

O valor 100 tem o adddress 6422280
O valor 200 tem o adddress 6422276
O valor 300 tem o adddress 6422272
O valor 400 tem o adddress 6422268

Usando este método, podemos acessar os endereços e os valores armazenados no ponteiro da matriz.

Conclusão

Neste curto guia, discutimos como usar matrizes e ponteiros na linguagem C. Também discutimos como criar uma variedade de ponteiros para armazenar endereços para vários valores.