Neste tutorial de nossa apostila de C++, vamos aprender como trabalhar tanto com arrays como com ponteiros, usando structs.
Array de Structs
Assim como qualquer outro tipo de variável, o tipo que você definiu, usando structs, pode ser declarado na forma de array, ou seja, várias instâncias de structs.
Nos tutoriais anteriores, estamos usando a struct Student, instanciando apenas um aluno para nosso estudo. Mas qual escola, faculdade ou curso que você conhece que só tem um aluno? O normal é ter 20, 30, 50...
Então vamos lá, para declarar 50 structs do tipo Student, basta fazer:
- Student alumns[50];
E prontinho, está declarado seu array de nome 'alumns', do tipo 'Student', com 50 elementos, onde o índice varia de 0 até 49.
Para acessar os nomes dos alunos, basta acessar as variáveis:
- alumn[0].name
- alumn[1].name
- alumn[2].name
- ...
- alumn[49].name
Para acessar as notas de matemática dos alunos, basta acessar as variáveis:
- alumn[0].math
- alumn[1].math
- alumn[2].math
- ...
- alumn[49].math
Ponteiros para Structs
Por exemplo, para criar um ponteiro do tipo Student e de nome 'alumn':
- Student *alumn;
- Student s = { "Neil Peart", 10.0, 10.0, 10.0 };
- alumn = &s;
- *alumn.name = "Alex Lifeson";
- (*alumn).name = "Alex Lifeson";
- alumn->name = "Alex Lifeson";
#include <iostream> using namespace std; int main() { Student s[3], *ptr_s; int i; for(i=0 ; i<3 ; i++) { ptr_s=&s[i]; cout << "Nome do aluno "<<i+1<<": "; cin.getline(ptr_s->name, 50); cout << "Nota de Matemática do aluno "<<i+1<<": "; cin >> ptr_s->math; cout << "Nota de Física do aluno "<<i+1<<": "; cin >> ptr_s->physics; cout << "Nota de Ciências do aluno "<<i+1<<": "; cin >> ptr_s->science; cin.ignore(); cout << endl; } cout << endl; for(i=0 ; i<3 ; i++) { ptr_s=&s[i]; cout << "Aluno "<<i+1<<": "<<ptr_s->name<<endl; cout << "Nota em Matemática "<<i+1<<": "<<ptr_s->math<<endl; cout << "Nota em Física "<<i+1<<": "<<ptr_s->physics<<endl; cout << "Nota em Ciências "<<i+1<<": "<<ptr_s->science<<endl; cout << endl; } return 0; }
Nenhum comentário:
Postar um comentário