• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

C++ Struktury, wskaźniki

Konkurs Mistrz Programowania
0 głosów
282 wizyt
pytanie zadane 17 grudnia 2018 w C i C++ przez eSpring Początkujący (270 p.)

Napisz funkcję void print(const vec3d* p), która wypisuje przekazany przez wskaźnik wektor w formacie "[1.0, 2.0, -3.0]". Zmodyfikuj funkcję main, tak żeby korzystała z nowej wersji funkcji.
Jakie są istotne różnice pomiędzy dwoma funkcjami?

#include <iostream>

struct vec3d {

       float x;
       float y;
       float z;

};
void print(vec3d p) {

       std::cout << "[ " << p.x << ", " << p.y << ", " << p.z << " ]";

}
int main() {

       vec3d w1;

       std::cout << "Podaj wspolrzedna x:";
       std::cin >> w1.x;
       std::cout << "Podaj wspolrzedna y:";
       std::cin >> w1.y;
       std::cout << "Podaj wspolrzedna z:";
       std::cin >> w1.z;

       print(w1);

       return 0;
}

W jaki sposób przerobić funkcję? I jakie są różnice? Proszę o podpowiedzi, bądź rozwiązanie. Pozdrawiam !!

1 odpowiedź

+1 głos
odpowiedź 18 grudnia 2018 przez Bondrusiek Maniak (61,460 p.)

Witam,

różnica pomiędzy odwoływaniem się do elementów w strukturze pomiędzy obiektem a wskaźnikiem jest operator. W przypadku obiektu używasz . (kropki) a w przypadku wskaźnika ->.

#include <iostream>

struct vec3d {

       float x;
       float y;
       float z;

};
void print(const vec3d* p) {

       std::cout << "[ " << p->x << ", " << p->y << ", " << p->z << " ]";

}
int main() {

       vec3d *w1 = new vec3d;

       std::cout << "Podaj wspolrzedna x:";
       std::cin >> w1->x;
       std::cout << "Podaj wspolrzedna y:";
       std::cin >> w1->y;
       std::cout << "Podaj wspolrzedna z:";
       std::cin >> w1->z;

       print(w1);

       delete w1;
       return 0;
}

 

 

Więcej info

http://www.cplusplus.com/doc/tutorial/structures/

Podobne pytania

0 głosów
2 odpowiedzi 1,308 wizyt
pytanie zadane 12 listopada 2020 w C i C++ przez milosz123 Użytkownik (720 p.)
0 głosów
3 odpowiedzi 1,705 wizyt
0 głosów
0 odpowiedzi 750 wizyt

93,655 zapytań

142,575 odpowiedzi

323,099 komentarzy

63,171 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

Kursy INF.02 i INF.03
...