English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

C ++ ponteiro de estrutura

Neste artigo, você encontrará exemplos relevantes que ajudarão você a usar ponteiros para acessar dados dentro da estrutura.

ponteiroas variáveis não podem apenas ser criadas para tipos de máquina (int, float, double, etc.), mas também para tipos definidos pelo usuário (comoestrutura) criar.

Se você não sabe o que é ponteiro, acesseC ++ponteiro.

Este é o método de criação de ponteiros de estrutura:

#include <iostream>
using namespace std;
struct temp {
    int i;
    float f;
};
int main() {
    temp *ptr;
    return 0;
}

Este programa cria um ponteiro de tipo de estrutura chamado ptr.

exemplo: ponteiro de estrutura

#include <iostream>
using namespace std;
struct Distance
{
    int feet;
    float inch;
};
int main()
{
    Distance *ptr, d;
    ptr = &d;
    
    cout << "informar pés: ";
    cin >> (*ptr).feet;
    cout << "informar polegadas: ";
    cin >> (*ptr).inch;
 
    cout << "exibir informações" << endl;
    cout << "distância = " << (*ptr).feet << " pé " << (*ptr).inch << " polegadas";
    return 0;
}

resultado de saída

informar pés: 4
informar polegadas: 3.5
exibir informações
distância = 4 pé 3.5 polegadas

O programa define a estrutura de tipo Distance, que possui variável de ponteiro*ptr e a variável d comum.

O endereço da variável d é armazenado no ponteiro de variável, ou seja, ptr aponta para a variável d, e então são usados os ponteiros para acessar os membros da variável d.

Atenção:Devido ao fato de que o ponteiro ptr neste programa aponta para a variável d, portanto (* ptr).inch e d.inch são unidades completamente iguais. Da mesma forma, (* ptr).feet e d.feet são unidades completamente iguais. Da mesma forma, (

A sintaxe para acessar funções de membros por meio de ponteiros é feia, mas há um símbolo de substituição mais comum->.

ptr->feet é equivalente a (*ptr).feet
ptr->inch é equivalente a (*ptr).inch