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

C++ Struktury, wskaźniki

0 głosów
80 wizyt
pytanie zadane 17 grudnia 2018 w C i C++ przez eSpring Początkujący (260 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 (51,630 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
3 odpowiedzi 281 wizyt
0 głosów
0 odpowiedzi 58 wizyt
pytanie zadane 27 grudnia 2018 w C i C++ przez eSpring Początkujący (260 p.)
0 głosów
1 odpowiedź 163 wizyt
Porady nie od parady
Wynikowy wygląd pytania, odpowiedzi czy komentarza, różni się od tego zaprezentowanego w edytorze postów. Stosuj więc funkcję Podgląd posta znajdującą się pod edytorem, aby upewnić się, czy na pewno ostateczny rezultat ci odpowiada.Podgląd posta

66,451 zapytań

113,207 odpowiedzi

239,680 komentarzy

46,704 pasjonatów

Przeglądających: 259
Pasjonatów: 13 Gości: 246

Motyw:

Akcja Pajacyk

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

Oto dwie polecane książki warte uwagi. Pełną listę znajdziesz tutaj.

...