Diferença entre Array e Pointer

Índice:

Anonim

o principal diferença entre a matriz e o ponteiro é que um array é uma estrutura de dados que armazena uma coleção de elementos do mesmo tipo de dados, enquanto um ponteiro é uma variável que contém o endereço de outra variável na memória do computador.

Array e ponteiro são dois conceitos usados ​​em linguagens de programação como C e C ++. Uma matriz é uma coleção de dados que contém um número fixo de valores do mesmo tipo de dados. Por exemplo, para armazenar as notas de 10 alunos, o programador pode criar um array que pode armazenar 10 inteiros. Por outro lado, um ponteiro é uma variável que contém o endereço de outra variável. Os ponteiros ajudam a acessar a memória e a manipular endereços de memória.

Array, Pointer

O que é um Array

Um array é uma estrutura de dados que armazena um número fixo de elementos do mesmo tipo. Todos os elementos da matriz estão em locais de memória contíguos.

Figura 1: Array

Suponha que você precise armazenar valores de 50 inteiros. É possível criar variáveis ​​para cada número inteiro, mas é difícil e demorado. Uma matriz pode ser usada para superar esse problema.

números internos [50];

A instrução acima alocará uma matriz chamada números, que pode armazenar cinquenta inteiros. Um elemento específico da matriz pode ser avaliado usando o índice. O índice inicial é 0. Como existem 50 elementos na matriz, o elemento final tem o índice 49.

números [1] = 30;

A declaração acima atribuirá o valor 30 ao 1st índice da matriz de números.

Por exemplo, a média dupla [10]; irá criar uma matriz chamada média. Ele pode armazenar 10 valores duplos.

Um array é mais fácil de criar e mais fácil de acessar os elementos. Por outro lado, um array possui um tamanho fixo. Se o tamanho do array for 10, ele não pode ser usado para armazenar 20 elementos. Em outras palavras, a alocação de memória para um array é estática.

O que é um Pointer

Uma variável é um local da memória para armazenar um valor. Cada local de memória tem um endereço para identificá-lo.

Figura 2: Ponteiro

Um ponteiro é uma variável que armazena o endereço de outra variável. O ponteiro é declarado antes de armazenar um endereço de variável. O asterisco * é usado para declarar um ponteiro.

int * ptr;

O ptr é um ponteiro para uma variável inteira.

double * ptr1;

O ptr1 é um ponteiro para uma variável dupla. Consulte o código a seguir.

Figura 3: Programa com ponteiros

A variável ‘a’ contém o valor 20. O ptr é um ponteiro para um número inteiro. Na linha 8, ptr é atribuído com o endereço da variável a. Agora ptr está apontando para um. Portanto, imprimir o valor apontado por ptr fornecerá o valor de a.

Se não houver endereço a ser atribuído, o ponteiro pode ser atribuído com um valor NULL. Esse tipo de ponteiro é denominado ponteiro nulo.

int * ptr = NULL;

Relação entre Array e Pointer

Consulte o programa abaixo.

Figura 4: Arrays com ponteiros

Existe uma matriz chamada arr. Ele contém 5 inteiros. O ptr é um ponteiro para um número inteiro. Na linha 8, arr é atribuído a ptr. Portanto, o ptr está apontando para o 0º elemento de índice da matriz. Imprimir o valor de ptr exibirá o valor 0º elemento de índice. São 10.

Diferença entre Array e Pointer

Definição

Array é uma estrutura de dados que consiste em uma coleção de elementos, cada um identificado pelo índice do array. Um ponteiro é um objeto de linguagem de programação que armazena o endereço de memória de outro valor localizado na memória do computador.

Base

Enquanto uma matriz se refere a um conjunto de elementos de dados, um ponteiro é uma variável que aponta para algum outro local da memória.

Sintaxe

Sintaxe de array - tipo de dados arrayName [tipo de dados];

Sintaxe do ponteiro - tipo de dados * nome_variável;

Uso

Embora os arrays possam ser usados ​​para alocar memória de tamanho fixo (memória estática), os ponteiros podem ser usados ​​para alocação de memória dinâmica.

Conclusão

Os dois termos array e ponteiro são dois conceitos de programação. A diferença entre array e ponteiro é que um array é uma estrutura de dados que armazena uma coleção de elementos do mesmo tipo de dados, enquanto um ponteiro é uma variável que contém o endereço de outra variável na memória do computador.

Referência:

1. “Matrizes em C.” Www.tutorialspoint.com, Tutorials Point, disponível aqui.2. “Ponteiros em C.” Www.tutorialspoint.com, Tutorials Point, disponível aqui.

Cortesia de imagem:

1. “CPT-programming-array” Por Pluke - Próprio trabalho (CC0) via Commons Wikimedia2. “Ponteiros” de Este arquivo foi feito por Usuário: SvenTranslation Trabalho do próprio (CC BY-SA 3.0) via Commons Wikimedia

Diferença entre Array e Pointer