A maior rede de estudos do Brasil

Como comparar ponteiros, em C?

Ainda, como comparar vetores (strings, principalmente), matrizes. 


6 resposta(s) - Contém resposta de Especialista

User badge image

RD Resoluções Verified user icon

Há mais de um mês

CONCEITO


Linguagem de programação, Ponteiros e Vetores


#include<stdio.h>

int main()

{

int v1 = 32, v2 = 36;

/* declaração de ponteiros */

int *pv1, *pv2;

/* iniciando os os ponteiros com o endereços das variaveis */

pv1 = &v1;

pv2 = &v2;

printf("\n%u", pv1);

printf("\n%u", pv2);

/** A comparação entre ponteiros somente é possivel, quando os mesmos são do * mesmo tipo

* px1-px2 será igual a 1, a diferença depende da unidade tipo apontado **/

if(pv1 > pv2) {

printf("\npv1 - pv2 = %u\n", pv1 - pv2);

}

else {

printf("\npv2 - pv1 = %u\n", pv2 - pv1);

pv1 ++;

pv2 ++;

}

printf("pv1: %u\n", pv1);

printf("pv2: %u\n", pv2);

return 0;

}

A comparação entre ponteiros apenas é possível quando eles são do mesmo tipo, sendo assim independente de ser um vetor ou uma matriz segue igual ao exemplo acima. Deve ser ressaltado que strings, inteiros e float são tipos distintos, mas obedecem a estruturas semelhantes como vetores e matrizes.

CONCEITO


Linguagem de programação, Ponteiros e Vetores


#include<stdio.h>

int main()

{

int v1 = 32, v2 = 36;

/* declaração de ponteiros */

int *pv1, *pv2;

/* iniciando os os ponteiros com o endereços das variaveis */

pv1 = &v1;

pv2 = &v2;

printf("\n%u", pv1);

printf("\n%u", pv2);

/** A comparação entre ponteiros somente é possivel, quando os mesmos são do * mesmo tipo

* px1-px2 será igual a 1, a diferença depende da unidade tipo apontado **/

if(pv1 > pv2) {

printf("\npv1 - pv2 = %u\n", pv1 - pv2);

}

else {

printf("\npv2 - pv1 = %u\n", pv2 - pv1);

pv1 ++;

pv2 ++;

}

printf("pv1: %u\n", pv1);

printf("pv2: %u\n", pv2);

return 0;

}

A comparação entre ponteiros apenas é possível quando eles são do mesmo tipo, sendo assim independente de ser um vetor ou uma matriz segue igual ao exemplo acima. Deve ser ressaltado que strings, inteiros e float são tipos distintos, mas obedecem a estruturas semelhantes como vetores e matrizes.

User badge image

william jose

Há mais de um mês

Tem um material ótimo me passa seu email
User badge image

Ana Flávia Yanaze

Há mais de um mês

Ponteiros podem ser comparados apenas se forem do mesmo tipo! (acho que seria melhor vc especificar seu problema aqui Egon...)

Strings podem ser comparadas com funções de bibliotecas (procure por strcmp) 

Matrizes e vetores, creio que a saída mais fácil seria percorrendo-as...

User badge image

Thiago Cunha

Há mais de um mês

Cara, ponteiros é oconteúdo mais sinistro em C. Isso eu achei!

@william jose, me envie esse material. grupocodenome@gmail.com

Essa pergunta já foi respondida por um dos nossos especialistas